2014-07-20 20 views

回答

0

當您的數據庫更新完成後,您可以發送一個broadcast,並在它的接收器中更新適配器數據源並在您的列表適配器中調用notifyDatasetChanged()刷新列表。

+0

嗨和thnx。你會解釋如何做到這一點? –

+0

@ user1290224:實現過於廣泛而無法回答,這裏在stackoverflow中有大量可以搜索的示例。把你的問題分解成小塊並尋找它,祝你好運。 –

+0

thnx回答,但我知道,我需要更多的幫助! –

0

只要數據庫條目發生變化,您就可以使用通知,當條目發生更改時,您必須知道該通知,只需在同一時間提出通知,並在列表視圖所在的活動中添加相同的觀察者當下。

而且每當你的更新函數收到通知更新你的列表視圖(重新加載)。

創建一個可觀察類,例如這是如下:

public class TestObserver extends Observable 
{ 
    private static TestObserver instance; 

    public static TestObserver getSharedInstance() 
    { 
     if(instance == null) 
      instance = new TestObserver(); 

     return instance; 
    } 

    public void raiseNotification(Object data) 
    { 
     setChanged(); 
     notifyObservers(data); 
    } 
} 


Add this observer in your activity when it is created.Make sure the activity is implementing the Observer interface. 

    private void addObserver() 
    { 
    TestObserver.getSharedInstance.addObserver(this); 
    } 

而且你需要,當你的活動破壞,除去觀察者。

private void removeObserver() 
{ 
TestObserver.getSharedInstance.deleteObserver(this); 
} 

您需要實現一個名爲update(Observable instance,Object data)的方法。這被稱爲每當一個通知被觀察。

從其中數據庫的變化可以被確定的功能,提高通知,以便作爲

TestObserver.getSharedInstance.raiseNotification(yourObject); //可以是布爾指定數據庫是否改變與否。

+0

thnx回答,請告訴我該怎麼做?我想我應該在我的數據庫上使用光標或類似的東西。但你的解決方案對我來說似乎很好,請給我解釋一下。日Thnx。 –

+0

thnx回答,但這不能幫助我!我需要知道如何編寫一個算法來刷新列表視圖沒有任何滯後! –