2014-09-04 37 views
1

我有一個列表視圖的活動。如何定期從ListView中刪除項目?

每個項目都有一個到期日期。

當該日期通過時,我希望項目從UI中消失。

你會如何建議我開發它?

我曾想過:

1)報警manger-但它是有效的去了整個列表(20+),即使只是一個項目要刪除?

2)另外 - 我將如何強制清單刷新?無效數據 - 將導致整個列表重新繪製,我只想刪除一個項目

3)也許延遲後。但後來我知道如何「發送」它在X米里觸發,而不是在特定的日期(更麻煩的轉換,不是一個大問題)

你會建議什麼?

回答

0

1)報警manger-但它是有效的走了過來整個列表 (20+),即使只是一個項目要刪除?

2)另外 - 我將如何強制清單刷新?無效的數據 - 將導致整個列表重繪,我只是想刪除一個項目

3)也許延遲後。但後來我知道如何「發送」它是 引發了X毫,而不是在特定日期(比較麻煩 轉換,沒什麼大不了的)

當你無效列表它並不代表您的列表將被完全繪製,這意味着只有可見的項目將被繪製成7-8取決於列表項目的大小。

我解決問題的方法:

只是當你的活動創建或onRseume檢查日期更好,更新您的列表。當你的活動沒有顯示時,你爲什麼試着看日期? 如果您沒有任何活動,則沒有任何用戶界面。

0

您可以給列表中的項目添加一個id。這樣,當列表更新時,他們的視圖將不會被重新創建,而只會移動到新的位置。對於這個工作,你就只需要覆蓋

public int getPositionForView (View view) 

和已刪除的項目

AlarmManager聽起來並不像這個正確的工具返回AdapterView.INVALID_POSITION但你可以開始一個新的線程,睡了然後一段時間改變你的數據,通過觀察者/可觀察接口通知你的適配器。但是不要忘記打電話給Activity.runOnUiThread(),否則你會收到一個例外

相關問題