У меня есть RecyclerListView с двумя текстами EditText внутри. Для каждого из текстов редактирования я устанавливаю OnClickListener, где я устанавливаю CustomTextWatcher для текущего EditText. Для первого клика работает метод OnClick. Но TextWatcher не вызывается. При втором клике все работает нормально. Есть идеи, почему это происходит?
в xml:
<EditText
android:id="@+id/edit"
android:layout_width="64dp"
android:layout_height="wrap_content"
android:clickable="true"
android:focusableInTouchMode="false"/>
в адаптере:
@Override
public void onBindViewHolder(CardViewHolder viewHolder, final int position) {
...
holder.blocks.setOnClickListener(new MyEditTextClickListener());
... }
private class MyEditTextClickListener implements View.OnClickListener {
public MyEditTextClickListener() {}
@Override
public void onClick(View v) { switch (v.getId()) {
case R.id.edit:
callback.callback(EditText eT);
break;
}}
в действии:
@Override
public void callback(final EditText eT) {
myTextWatcher = new MyTextWatcher(eT);
eT.addTextChangedListener(myTextWatcher);
}
public class MyTextWatcher implements TextWatcher {
EditText eT;
public MyTextWatcher(EditText eT) {
this.eT = eT;
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {}
@Override
public void afterTextChanged(Editable s) {}
callback
принадлежит? - person Mehran Zamani   schedule 13.03.2017beforeTextChanged
иonTextChanged
иafterTextChanged
то откуда ты знаешь что они не рабочие? - person Mehran Zamani   schedule 13.03.2017addTextChangedListener
в свойoncreate
метод деятельности. потому что не имеет значения, где вы его установите. когда текст изменится, он будет вызван, поэтому вы должны поместить его туда, где вы уверены, что он установлен. - person Mehran Zamani   schedule 13.03.2017