我有这个应用程序,可以在其中动态创建多个 EditText。数量取决于用户输入。我试图让焦点在输入两个字符后更改为下一个编辑文本。到目前为止我有这个:
for(EditText editText : editTextList ) {
editText.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
// TODO Auto-generated method stub
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
// TODO Auto-generated method stub
}
@Override
public void afterTextChanged(Editable s) {
if(s.toString().length() == 2) {
//code to change focus to next edit text goes here
}
}
});
}
第一个问题是,如果用户输入大量数字,这可能会创建许多 TextWatcher 实例(在这种情况下,平均可能是 100-600 个 EditText 字段)。
第二个问题是我将如何在 afterTextChanged 方法中更改焦点,因为我想将焦点更改为下一个 EditText,远离当前在循环中表示的那个。
我不应该担心多个 TextWatcher 对象的潜在性能问题吗?我应该放弃整个实施并专注于其他地方吗?任何建议将不胜感激。