2014-10-04 2 views
1

После работы над приложением на некоторое время я понимаю, я используюандроид ясный arraylist или адаптер?

adapter.clear() 
and 
arraylist.clear() 

я могу видеть, как работает нормально, я хотел бы знать разницу между этими двумя!

Оба вызываются до начала и asyncTask, которые обновляют мой список информацией с моего сервера!

+1

Вы используете ArrayAdapter? Если вы вызываете ArrayAdapter # clear(), вам не нужно вызывать notifyDataSetChanged, потому что он будет вызван автоматически. Если вы используете arrayList.clear(), вам нужно будет вызвать notifyDataSetChanged самостоятельно. – Wenhui

+0

Я использую arrayAdapter и notifyDataSetChanged в этих местах. В других местах я использовал ArrayAdapter.clear (и не использовал notifyDataSetChanged) , но мне интересно, предпочитаете ли вы друг друга! – rasmus

ответ

1

Вы не должны снимать ArrayList напрямую. ArrayAdapter абсолютно не гарантирует, что он поддерживает тот же список ссылок, который ему предоставлен. Фактически это изменится, когда вы выполните поиск с его фильтром. Что сделало бы ошибку arrayList.clear().

Правило большого пальца, если вам когда-либо понадобится мутировать или извлекать ассоциированные данные ... делайте это непосредственно с адаптера. Не список, который вы использовали для его создания.

+0

Я работаю над секцией Adapter для RecyclerView и просто наткнулся на ваш ответ. Я был бы признателен, если бы вы могли повлиять на мою проблему, потому что у нее есть ArrayList.clear(), о котором вы предупреждаете, см. Http://stackoverflow.com/questions/41969397/android-how-do-i-maintain- ракурс-для-cardviews-в-recyclerview-лист – AJW

0

Adapter = содержит копии дифф взглядов, массивы

aaraylist содержит данные, которые мы хотим показать, на наш взгляд.

например: arraylist<HashMap<String,String>> ah= new ArrayList<HashMap<String,String>>();

приведенный выше список содержит HashMap

если я очистить ArrayList не будет никаких данных, чтобы показать на ListView или GridView так будет пусто

если я ясно адаптер, чем он уничтожит копии массива и представлений, поэтому выход будет таким же

Смежные вопросы