У меня несколько EditTexts, и я хочу изменить ввод всех из них одновременно, так как я изменяю только один. (Все они принимают десятичные числа в качестве входных)
Я сохранил EditTexts в массив с именем 'editTexts'.
Вот что я пробовал
//Set the listener for each element
for (int i=0; i<editTexts.length; i++) {
final int finalI = i;
editTexts[i].addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
//if the editText which is currently edited is empty, set the input for all the rest to be '0.0'
if (editTexts[finalI].getText().toString().trim().length() == 0) {
for(EditText e : editTexts) {
if (e == editTexts[finalI])
continue;
e.setText("0.0");
}
} else {
float no = Float.parseFloat(s.toString() + "");
//Set the input of all the other editTexts to be the decimal number entered, multiplied by 2
for(EditText e : editTexts){
if(e == editTexts[finalI])
continue;
e.setText(no*2+"");
}
}
}
@Override
public void afterTextChanged(Editable s) {
}
})
}
В этом случае коэффициент умножения является всего лишь примером, он не всегда будет 2. Я использовал его только для проверки его нет.
По какой-то причине, когда я меняю входное значение, приложение зависает.
Есть помощь? Спасибо!