2012-01-31 27 views
1

我已經使用ListActivty.I實現了示例應用程序。我使用了CustomAdapter,並且正在從Web服務中獲取一些數組的文本。我將這些消息顯示爲list.when數據已從Web serice更改爲數據未在列表中更改。爲了從服務中獲得更新的消息,我使用了廣播接收器來接收更新。在我的廣播接收器類中,我可以通過使用Alaram manger來獲得lates消息。在這種情況下,我想在不知道的情況下更新UI用戶。如何在android中更新UI上的ListView?

我寫的代碼得到的消息顯示,從Web服務INTIAL vallues如下圖所示:

usrMessages = new String[resultShoutMessage.size()]; 
    userName = new String[resultShoutMessage.size()]; 
    imgid = new Integer[resultShoutMessage.size()]; 

    for(int i=0;i<resultShoutMessage.size();i++) 
    { 
     Log.v("ShoutGetMsgsScreen", "resultMessage*******>>>>"+resultShoutMessage.get(i).getShoutMessageText()); 
     Log.v("ShoutGetMsgsScreen", "resultShoutNames*******>>>>"+resultShoutMessage.get(i).getShoutUserFirstName()); 
     usrMessages[i] = resultShoutMessage.get(i).getShoutMessageText(); 
     userName[i] = resultShoutMessage.get(i).getShoutUserFirstName(); 
     imgid[i] = R.drawable.person; 
    } 
+2

如果廣播接收器在活動內聲明,只需重新初始化適配器或調用notifyDatasetChanged()(更新數據後)....否則引發意圖調用該活動,在'onNewIntent'中再次重新初始化適配器新的內容。 – st0le 2012-01-31 10:52:13

回答

1

在你可以使用IntentService這種情況下。註冊一個BroadCastReceiver,它將監聽從WebService下載數據的時間,並獲得執行更新UI。通過您的意圖onHandleIntent()做後臺進程和sendBroadCast更新您的用戶界面。 Here就是一個例子。