急 关于对多个Edittext的监听

界面上有 十个edittext 要对这是个edittext进行监听 要实时获取他们的内容 然后进行传递 但是这样连着写十遍代码就太长了 能不能用数组来实现监听啊 用数组的话得怎么写啊
edittext.addTextChangedListener(new TextWatcher() {
...} 用了数组的话 前面那个edittext的名字怎么写啊 很急啊 求大神解释下

阅读 3.7k
2 个回答

完全不能理解用数组怎么解决你的问题……
如果你嫌写十遍相同的代码太长,就把相同的代码通过继承 TextWatcher 写到一个类里,在类中绑定的 EditText 进行操作。


直接给你例子好了

class NewTextWatcher implements TextWatcher {
    
    private EditText editText;
    
    public NewTextWatcher(EditText editText) {
        this.editText = editText;
    }
    
    @Override
    public void onTextChanged(CharSequence s, int start, int before, int count) {
        String msg4 = editText.getText().toString();
    }
                
    @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
        
    }
}

使用

et_c.addTextChangedListener(new NewTextWatcher(et_c));

我认为创建10个TextWatcher实例不是明智的选择, 页面中同时出现的 EditText 在一个时间点下应该只有一个EditText能够输入内容, 因此创建一个TextWatcher实例, 所有输入框都注册同一个实例就能够满足你的要求了吧.

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题