2013-08-16 5 views
0

У меня есть ListView, который содержит список событий, когда я просматриваю список, я загружаю больше предметов, и всегда у меня не будет более 20 событий, видимых на моем экране. Так я действуйте следующим образом:удалить элементы из спискаView android

//load data from server and add it to my eventsList 
    int size = eventsList.size(); 
    List<Data> temp; 
    if(size>20) { 
     eventsList = eventsList.subList(size - 20, size); 
    } 

    Log.e("eventsList Load More", " " + eventsList.size() + " " + principalSchedule.getCount()); 

    //Tell to the adapter that changes have been made, this will cause the list to refresh 
    principalSchedule.notifyDataSetChanged(); 

но проблема я всегда eventsList.size() = 20 и principalSchedule.getCount() does't снижение.

+0

Что делает ваш subList()? – bofredo

+0

вам необходимо вызвать notifydataSetchanged на вашем адаптере, чтобы обновить или обновить listview – Raghunandan

+0

listview.remove (position); – Aravin

ответ

0

Ваш ListView должен взаимодействовать с вашим списком через ViewAdapter (вероятно ArrayAdapter, но вы еще не показал, что код) Если вы создайте свой собственный адаптер (не очень сложно сделать), тогда метод getView() на этом адаптере сможет определить, когда элемент больше не отображается и, возможно, восстанавливает ресурсы.

Эта ссылка: http://lucasr.org/2012/04/05/performance-tips-for-androids-listview/ более подробно описывает один способ адаптера, который загружает ресурсы в фоновом потоке и может освобождать ресурсы, когда они больше не нужны. Это не соответствует вашему варианту использования, но если вы его прочитали и понимаете, вы должны увидеть, как написать код, который вам нужен для вашего дела.

+0

Спасибо за вашу помощь :) –

1

< Список E метод > #subList (целое, целое) возвращает новый список <E> с подмножеством исходного списка и не изменяет первоначальный список.

Если вы не устанавливать EventList обратно в principalSchedule, список из

расходных
Смежные вопросы