2013-09-28 50 views
2

我在Button上有此代碼點擊Android的Listview項目刪除,但適配器沒有得到設置和項目仍顯示?

我從ListView中刪除項目,但問題是它仍然顯示在適配器上。

restaurants_bean_arr.remove(restaurants_bean_arr.get(item_position).facilities.get(item_position).getUrl()); 
        restaurants_bean_arr.remove(restaurants_bean_arr.get(item_position).facilities.get(item_position).getName()); 
    DisplayDataAdapter adapter = new DisplayDataAdapter(getApplicationContext());   
    adapter.notifyDataSetChanged(); 
    listView.setAdapter(adapter); 

任何想法可能是該項目沒有得到來自對象類ArrayList排除故障。

感謝

+0

你能接受答案嗎?請.. – hasan83

回答

2

開關順序:

adapter.notifyDataSetChanged(); 
listView.setAdapter(adapter); 

要:

listView.setAdapter(adapter); 
adapter.notifyDataSetChanged(); 
+0

如果我更改訂單,則無法使用。當我使用本地數組列表時,我會工作得很好。但restaurant_bean_arr是我的對象類數組列表,我不知道爲什麼它的尼特與對象類數組列表 –

1

好像你正在創建一個新的Adapter每次你改變你的數據集,並設置這個新Adapter到你的ListView。你不必這樣做。您可以對數據集進行更改,然後在Adapter上撥打notifyDataSetChanged()

所以,你的代碼應該是這樣的:

restaurants_bean_arr.remove(restaurants_bean_arr.get(item_position).facilities.get(item_position).getUrl()); 
restaurants_bean_arr.remove(restaurants_bean_arr.get(item_position).facilities.get(item_position).getName()); 
adapter.notifyDataSetChanged();  
1

這是問題

DisplayDataAdapter adapter = new DisplayDataAdapter(getApplicationContext()); 

要創建一個新的適配器。創建一個全球價值適配器並嘗試像這樣:

restaurants_bean_arr.remove(restaurants_bean_arr.get(item_position).facilities.get(item_position).getUrl()); 
       restaurants_bean_arr.remove(restaurants_bean_arr.get(item_position).facilities.get(item_position).getName()); 
adapter.notifyDataSetChanged(); 
+0

如果我做了全局聲明,然後它給我空指針異常...對不起,沒有工作這個解決方案 –

+0

İt不應該給我的意思是創建這個作爲全局:「DisplayDataAdapter適配器」,並將其設置在開始(onCreate())適配器=新的DisplayDataAdapter(this);並將其設置爲列表視圖。然後嘗試我的答案,它不應該給nullpointer – invisbo

+0

謝謝哥們:) –

相關問題