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());

適切な整数値が得られるはずです。

それらをすべて合計するには、すべての editTexts の配列を保持します。

アクティビティを作成するときに配列を作成します

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 に答える