1

ユーザー入力に基づいて可変数の EditText をプログラムで作成しており、それぞれEditTextが別のテキストとペアになっています (したがって、ユーザーが要求する数の 2 倍を作成しています)。ユーザーが一方の値を変更すると、一致するペアEditTextも変更されます。

すべての editTexts を含む配列を通過し、TextWatcherfor each を作成するループがありますが、メソッド内のテキストを変更しようとするとonTextChanged、プログラムがクラッシュします。

for(int i = 0; i < waysToSplit; i++)
{
    editTexts[i] = new EditText(this);
    editTexts[i+waysToSplit] = new EditText(this); //The paired edittext
    editTexts[i].setId(i+1);
    editTexts[i].addTextChangedListener(new TextWatcher(){
            @Override
            public void onTextChanged(CharSequence s, int start, int before, int count) {

                //Change the paired box
                editTexts[i+waysToSplit].setText("changed");

            }

            @Override
            public void beforeTextChanged(CharSequence s, int start, int count, int after) {
                // TODO Auto-generated method stub
            }

            @Override
            public void afterTextChanged(Editable s) {
                // TODO Auto-generated method stub         
            }
 }

onTextChanged メソッド内で変数 i を使用できないだけでなく (「別のメソッドで定義された内部クラス内で非最終変数 i を参照することはできません」)、テスト目的で特定のeditTexts[3].setText("Changed"); 何も起こっ ていないような何かでボックスの変更 。

うまくいけば、何が起こっているのかを理解するのに十分なコードです..どんな助けでも大歓迎です. 私が見つけた最も近いものはAndroid でした。互いに依存する 2 つの EditTextsですが、コードはありません。

4

1 に答える 1