首页 > 解决方案 > 将值从膨胀的 EditText 添加到 ArrayList

问题描述

我是编程新手,所以如果这是一个愚蠢的问题,请原谅。我有两个按钮。首先将 EditText 添加到 Activity,然后将输入的值保存到数组。问题是它只保存第一个 EditText 的值。因此,如果我想对数组中的所有值求和,我将得到第一个值乘以添加的 EditText 的数量。先感谢您。

ArrayList<EditText> editText2ArrayList = new ArrayList<EditText>();
int j = 0;

添加 EditText 的按钮

public void addButtonMethod(View view){
        ImageButton addButton = findViewById(R.id.addButton);
        ImageButton confirmButton = findViewById(R.id.confirmButton);
        LinearLayout itemList = findViewById(R.id.AddLayout);
        View item = LayoutInflater.from(this)
                .inflate(R.layout.add_textview, itemList, false);
        itemList.addView(item);
        confirmButton.setVisibility(View.VISIBLE);
        addButton.setBackgroundResource(R.drawable.gray_round_button);
        addButton.setClickable(false);
        EditText addEditText2 = findViewById(R.id.add_edit_text_2);   // this is EditText from R.layout.add_textview
        editText2ArrayList.add(j, addEditText2);
    }

确认输入文本的按钮

public void confirmButtonMethod(View view){
        ImageButton addButton = findViewById(R.id.addButton);
        ImageButton confirmButton = findViewById(R.id.confirmButton);
        EditText currentAddEditText2 = editText2ArrayList.get(j);
        j++;
        if(currentAddEditText2.getText().toString().trim().length() > 0){
            String priceString = currentAddEditText2.getText().toString();
            Float price = Float.parseFloat(priceString);
            productPrices.add(price);
            confirmButton.setVisibility(View.INVISIBLE);
            addButton.setBackgroundResource(R.drawable.round_button);
            addButton.setClickable(true);
        }
        else{
            Toast.makeText(this, "Please enter the price", Toast.LENGTH_SHORT).show();
        }
}

标签: javaandroidarraysandroid-edittext

解决方案


推荐阅读