ユーザー入力に基づいて可変数の EditText をプログラムで作成しており、それぞれEditText
が別のテキストとペアになっています (したがって、ユーザーが要求する数の 2 倍を作成しています)。ユーザーが一方の値を変更すると、一致するペアEditText
も変更されます。
すべての editTexts を含む配列を通過し、TextWatcher
for 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ですが、コードはありません。