Решил эту проблему для себя, может быть, у вас такая же проблема.
Это было вызвано Объектом в HeaderView Адаптера списка .
Я накачал Вид , объявил Объект и надел на него TextWatcher .
View v = LayoutInflater.from(CONTEXT).inflate(R.layout.in_overscrollview, null);
Object= (Object) v.findViewById(R.id.OBJECT_ID);
Object.addTextChangedListener(new TextWatcher() {
@Override
public void afterTextChanged(Editable s) {
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after){
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
//Do my work
//Update my view
}
});
Добавил его в список Адаптер и встроил адаптер.
JobListView = (ListView) getListView().findViewWithTag("JOBLISTVIEWTAG");
JobListView.addHeaderView(v, null, false);
JobsAdapter = new IN_JOBS_ADAPTER(CONTEXT, ITEMS_FOR_ADATER);
ListView.setAdapter(JOBSadapter);
Все отлично, Наблюдатель за текстом работает.
НО если я когда-нибудь перестроил адаптер после первоначальной сборки.
JobsAdapter = new IN_JOBS_ADAPTER(CONTEXT, DIFFERENT_ITEMS_FOR_ADAPTER);
ListView.setAdapter(JOBSadapter);
То, что HeaderView тоже перестраивается.
Это предупреждение будет отображаться, потому что Объект был удален, а Наблюдатель за текстом все еще был настроен на его наблюдение.
Список Адаптер и Объект были заменены, и я предполагаю, что Наблюдатель текста выглядел иначе, когда это произошло.
Таким образом, предупреждение сработало, и чудом Наблюдатель текста находит HeaderView и Объект . Но он теряет фокус и записывает это предупреждение.
Использование
JOBSadapter.notifyDataSetChanged();
исправил проблему.
НО , если у вас есть Объект внутри Адаптера , и Наблюдатель текста присоединен к Объекту внутри Адаптера . Тогда вам, возможно, придется проделать немного больше работы.
Попробуйте удалить прослушиватель и снова подключить его после выполнения любой работы, которую вы, возможно, делаете.
Object.removeTextChangedListener();
* * Или тысяча семьдесят-девять
Object.addTextChangedListener(null);