2012-12-31 51 views
0

我已經看到關於refreshin一個listview太多的問題,我已經嘗試了主題的每個解決方案,但沒有爲我工作。刷新列表視圖刪除操作後從一個arraylist創建

已嘗試notifysetdatachange(),invalidateviews,refreshdrawablestate()但沒有人工作。

我有一個arraylist和在longclick操作後,我正在從arraylist.and刪除一個項目,我希望它從listview中消失,但它不。

但刪除後,如果我打開另一個活動,並返回到包含我的listview的活動,它會消失。

所以我刪除操作是成功的,我只是想知道如何刷新列表視圖,

我沒有張貼代碼,因爲沒有什麼,我只是用

唯一我有一個名爲arraylistal_6。我正在填充物體。

然後我把它們發送到我的adapter

adapter = new ContentSearchListAdapter(getActivity(), channels2, 
       options); 
     listview.setAdapter(adapter); 

,當我想從我的ArrayList中刪除對象。

al_6.remove(position) 

和我的刪除操作前說是成功的

+0

你必須添加更多的代碼才能得到答案。單一的代碼行也從數組列表中刪除項目是不夠的。 – TNR

回答

0

你應該使用這些語法實現它

((YourAdaptor)Listview.getAdaptor()).notifyDataSetChange(); 

我希望它有助於你... :)

+0

問卷已經說過,他使用notifyDataSetChanged() – TNR

+0

,但它沒有specigy如何使用它,他正在申請dotifydatasetchange沒有得到適配器... – DynamicMind

+0

我已經使用它,如你所說((ContentSearchListAdapter)mylistview.getAdapter())。notifyDataSetChanged );但依然沒有改變。 – kaplanfat

0

試試這個代碼和你的適配器類,

// query fire on your deletion operation 
    mArrayList.remove(position); 
    notifyDataSetChanged(); 
+0

正如我在第一個說我已經嘗試過,並且它不適用於哪個適配器使用 – kaplanfat

+0

? –

+0

抱歉不明白你問了什麼? – kaplanfat

0

從我的經驗來看,很奇怪listview刷新它的行爲。我總是刷新的ListView沒有問題相同:從BaseAdapter

  • 使用的ArrayList <>結構數據插入適配器擴展

    • 使用自定義適配器。如果你的數據在數據庫SQLiteDatabase中,我建議將你需要的數據放在ArrayList中並將它傳遞給適配器。我不能做同樣的的CursorAdapter :(
    • 讓你的ArrayList和適配器公共靜態在你的活動,如果你打算修改活動之外的數據,並希望更新列表。
    • 當你修改或從數據中刪除任何信息(如果你直接做你的數據庫上,重複同放入ArrayList中),使用活動的適配器的公共靜態參考打電話給他的方法notifyDataSetChanged()
  • 相關問題