2 nana4ever nana4ever 于 2012.11.16 17:10 提问

在多个EditText字段实现TextWatcher的接口

我想在多个EditText字段实现TextWatcher的接口。用的是以下代码:

text1.addTextChangedListener(this);
text2.addTextChangedListener(this);

然后在Activity中重写方法

public void afterTextChanged(Editable s) {}

public void beforeTextChanged(CharSequence s, int start, int count, int after) {}
public void onTextChanged(CharSequence s, int start, int before, int count) 
{
 // 在text1字段做一些文本操作
 // 在text2字段做一些文本操作
}

程序可以正常运行,我想找一下别的方法。那样我就可以确定SoftKeyboard的焦点当前在哪个EditText中。

2个回答

baimy1985
baimy1985   2012.11.16 20:57
已采纳

text1.addTextChangedListener(这里换成TextWatcher的对象,而不是使用this);
上面那个例子应该就可以的

nana4ever
nana4ever   2012.11.16 17:46

我自己找到的一种方法是这样实现的,大家还有别的解决方案吗?

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    EditText e = new EditText(this);
    e.addTextChangedListener(new CustomTextWatcher(e));
}

private class CustomTextWatcher implements TextWatcher {
    private EditText mEditText;

    public CustomTextWatcher(EditText e) {
        mEditText = e;
    }

    public void beforeTextChanged(CharSequence s, int start, int count, int after) {
    }

    public void onTextChanged(CharSequence s, int start, int before, int count) {
    }

    public void afterTextChanged(Editable s) {
    }

}

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!