没有调用android textchangelistener

时间:2016-06-29 15:08:51

标签: android android-edittext android-textwatcher

我有以下问题:

在一个片段里面说FragmentTest,我有以下帖子:

new Thread(new Runnable() {
    public void run() {
    ...
        if (condition) {
             if (isAdded()) {
        getActivity.runOnUiThread(new Runnable () {
    public void run() {           
             rightEditText.addTextChangedListener(FragmentTest.this);} } 
          }
        }
       }
    ...
    }
}).start;

在onCreate方法中。

FragmentTest实现了TextWatcher接口,但没有调用任何接口方法。

2 个答案:

答案 0 :(得分:1)

公共类MainActivity扩展AppCompatActivity实现TextWatcher {     EditText edttext;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    edttext = (EditText) findViewById(R.id.editText);
    edttext.addTextChangedListener(this);
}


@Override
public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {

}

@Override
public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
  runOnUiThread(new Runnable() {
      @Override
      public void run() {
         Toast.makeText(MainActivity.this,"change",Toast.LENGTH_SHORT).show();
      }
  });
}

@Override
public void afterTextChanged(Editable editable) {

}

}

答案 1 :(得分:1)

将评论迁移到答案:

  

为什么需要在单独的线程中执行此操作?我认为问题是所有UI组件都在主UI线程上运行。没有线程就试试吧。

我想这里不需要进一步解释。 OP将他的代码迁移到UI线程并且工作正常。