setadapter в расширяемом списке отличается от setadapter в списке?

Я хочу очистить список после обновления с датой (добавить или удалить). Я использую setadapter, как упомянуто здесь Как очистить представления, которые хранятся в корзине ListView?

expList = (ExpandableListView) findViewById(R.id.expandableList);
expListAdapter = new POIExpandableListAdapter(LocationSettingActivity.this);
expListAdapter = expList.getAdapter();

expList.setAdapter (expListAdapter);

Но это бесполезно, представление добавляет все данные и обновляет данные (не обновляет), есть ли разница между setadapter в расширяемом списке и setadapter в списке?

Примечание. POIExpandableListAdapter — это класс, расширяющий BaseExpandableListAdapter.


person Redturbo    schedule 18.09.2015    source источник
comment
Читайте их и плачьте getAdapter setAdapter.   -  person Eugen Pechanec    schedule 18.09.2015


Ответы (3)


избавиться от expListAdapter = expList.getAdapter();

сразу после expList = (ExpandableListView) findViewById(R.id.expandableList); getAdapter() возвращает null вместо expListAdapter = new POIExpandableListAdapter(LocationSettingActivity.this);. То, как вы написали, равнозначно вызову expList.setAdapter (null);

person Blackbelt    schedule 18.09.2015

Просто удалите expListAdapter = expList.getAdapter();

В вашем списке еще нет адаптера, поэтому вызов getAdapter() перед setAdapter() вернет объект null.

Измените свой код следующим образом:

expList = (ExpandableListView) findViewById(R.id.expandableList);
expListAdapter = new POIExpandableListAdapter(LocationSettingActivity.this);
expList.setAdapter (expListAdapter);
person Rami    schedule 18.09.2015
comment
но этот код не обновляет список после обновления, он просто добавляет предыдущий список и обновленный список? - person Redturbo; 20.09.2015
comment
в чем разница между обновлением данных и их обновлением? - person Rami; 20.09.2015
comment
например, у меня есть данные: A, B; и я добавляю данные: C; в списке должны быть указаны A, B, C; после обновления, но мой список показывает: A, B, A, B, C; Я думаю, что это неправильный способ обновления, но я не знаю, как очистить предыдущий список @rami - person Redturbo; 21.09.2015
comment
Вам необходимо очистить набор данных вашего адаптера перед добавлением нового (очистить родительский список и дочерний список). Покажите мне, как вы загружаете новые данные. - person Rami; 21.09.2015

Наконец я нашел, как обновить свой список (очистить предыдущие данные после обновления), в моем случае мне нужно снова воссоздать вектор после обновления данных, а не только адаптер:

        vector = new Vector<ArrayList<PointOfInterest>>();
        type = new Vector<String>();
        expList.setGroupIndicator(null);
        expListAdapter = new POIExpandableListAdapter(LocationSettingActivity.this);
        expList.setAdapter (expListAdapter);
person Redturbo    schedule 21.09.2015