2013-02-20 59 views
0

我是android的noob,我試圖在一個窗口小部件中使用來自ArrayList的文本循環兩個文本視圖中的文本。出於某種原因,該小部件僅顯示來自ArrayList的第一個文本值,並且沒有循環後續值。我確信我的Arraylist有多個值,所以這不是問題。任何幫助是極大的讚賞。爲什麼不是我的Textview在Widget中設置文本

我的代碼;

void updateStory() { 

    tickerheadline = RssReader.rssheadline.get(storyCounter); 
    tickerstory = RssReader.rssstory.get(storyCounter); 
    remoteViews.setTextViewText(R.id.headline, tickerheadline); 
    remoteViews.setTextViewText(R.id.story, tickerstory); 
    if (storyCounter==RssReader.rssheadline.size()-1){ 
     storyCounter = 0; 
    }else{ 
     storyCounter++; 
    } 
    appWidgetManager.updateAppWidget(R.layout.widget1, remoteViews); 

    mHandler.postDelayed(new Runnable() { 
     public void run() { 
      updateStory(); 
     } } ,5000); } 

} 
+0

什麼是錯誤? – gpasci 2013-02-20 00:05:11

+0

沒有錯誤。文本只是不重置在小部件內部。 – 2013-02-20 00:11:00

+0

「我確定我的Arraylist有多個值,所以沒問題」:你記錄了嗎?從我所看到的,這一點代碼是好的。 – Geobits 2013-02-20 00:19:32

回答

2

您需要在每次更改後通過AppWidgetManager更新小部件。

AppWidgetManager appWidgetManager = AppWidgetManager.getInstance(context); 
appWidgetManager.updateAppWidget(appWidgetId, remoteViews); 
+0

感謝您的迴應。請檢查我的編輯,我在我的代碼後添加了您的建議,但它仍然沒有wrking。我做錯什麼了嗎? – 2013-02-20 00:49:17

+0

您的appWidgetId參數不正確。您使用視圖的ID,但它應該是系統用於AppWidgetProvider.onUpdate()方法中傳遞給您的appwidget的id。 – paul 2013-02-20 00:53:18

+0

它的作品!非常感謝。讓我困惑了幾個小時。 – 2013-02-20 00:57:16

相關問題