1

我正在我的代码中创建动态布局。我的 UI 有多个在运行时动态创建的行。每行由单个编辑文本组成。我创建了单个编辑文本对象并使用此对象添加多行。

让我们假设有 5 行,所以有 5 个编辑文本。用户可以在任何编辑文本中输入/删除数字。根据用户在各自的编辑文本中输入的内容,我想更新标签。标签应包含所有编辑文本值的添加。

我在编辑文本 afterTextChanged 回调方法上调用以下函数。

private void refreshTotalNumberOfDays(Editable editable){

    if(!(editable.length()==0)){
        totalDays = Integer.parseInt(editable.toString());  
    }

    finalTotalDays =totalDays+finalTotalDays;
    ftotalNumberOfDays.setText(String.valueOf(finalTotalDays));
}

但它没有正确添加值。

4

1 回答 1

0

您需要更改为:

totalDays = Integer.parseInt(editable.getText().toString());

它应该给你正确的整数值。

要汇总所有这些,请保留所有编辑文本的数组。

创建活动时制作数组

ArrayList<EditText> editTextArrayList = new ArrayList<EditText>();
editTextArrayList.add(editText1);
editTextArrayList.add(editText2);
...

然后在您的回调方法上,将它们全部加起来:

int total = 0;
for (EditText editText:editTextArrayList) {
    total +=  Integer.parseInt(editText.getText().toString());
}
于 2013-04-12T05:26:02.330 回答