我有这个应用程序可以动态创建多个EditText。金额取决于用户输入。我试图让焦点在输入两个字符后更改为下一个编辑文本。我有这个至今:在多个edittext字段上实现TextWatcher
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的下一个EditText。
我不应该担心多个TextWatcher对象的潜在性能问题吗?我是否应该放弃整个实施并专注于别处?任何建议将不胜感激。
对于多实例问题在循环外部创建一个textwatcher对象并将其设置为循环中的所有编辑文本 – SKT