我有这个应用程序,可以在其中动态创建多个 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 对象的潜在性能问题吗?我应该放弃整个实施并专注于其他地方吗?任何建议将不胜感激。