Как получить доступ к представлению в addTextChangedListener? - PullRequest
0 голосов
/ 11 декабря 2018

Я хочу добавить метод, в котором при передаче представления в качестве параметра ниже приведен код прямого добавления somemethod (view), показывающего ошибку.

abc.addTextChangedListener(new TextWatcher() {
  @Override
  public void beforeTextChanged(CharSequence s, int start, int count, int after) {}

  @Override
  public void onTextChanged(CharSequence s, int start, int before, int count) {
   somemethod(view); // this is where I stuck
  }
 }
}

@Override
public void afterTextChanged(Editable s) {

}
});
.....
somemethod(View view) {}

Ответы [ 2 ]

0 голосов
/ 11 декабря 2018

Я думаю, ваш вопрос немного расплывчатый.Если вы запускаете этот код из OnCreate (), вы можете получить представление следующим образом, в противном случае, если оно из других методов onclick, представление будет доступно в качестве параметра.

<code>final View view = findViewById(android.R.id.content);
0 голосов
/ 11 декабря 2018
private class MyTextWatcher implements TextWatcher {

    private View view;

    private MyTextWatcher(View view) {
        this.view = view;
    }

    @Override
    public void beforeTextChanged(CharSequence s, int start, int count, int after) {
        //access view
    }

    @Override
    public void onTextChanged(CharSequence s, int start, int before, int count) {
        //access view
    }

    @Override
    public void afterTextChanged(Editable s) {
        //access view
    }
}

Добавить прослушиватель для просмотра

editText.addTextChangedListener(new MyTextWatcher(editText));
...