2011-08-28 40 views
2

我有一個小部件在按下時得到更新,但我想在小部件更新時顯示進度輪。在小部件中顯示進度輪

//remove text  
     updateViews.setViewVisibility(R.id.widget_textview, View.GONE); 
     updateViews.setViewVisibility(R.id.widget_dkk, View.GONE); 

// show progress wheel 

updateViews.setViewVisibility(R.id.widget_Pross, View.VISIBLE); 



// task that take time are locatet here a GetHTTP function 



//Show text again  
     updateViews.setViewVisibility(R.id.widget_textview, View.VISIBLE); 
     updateViews.setViewVisibility(R.id.widget_dkk, View.VISIBLE); 

// Remove progress wheel 

    updateViews.setViewVisibility(R.id.widget_Pross, View.GONE); 

這一切都在我的窗口更新類中locatet此:

public static RemoteViews buildUpdate(Context context) { 

但進度輪不顯示。這就像小部件只會更新一次,因此在GetHttp中計算時不會顯示進度輪。

編輯:

​​

回答

2

你必須要改變佈局每次打電話AppWidgetManager.updateAppWidget()

這意味着您必須隱藏原始小部件視圖並在您的RemoteViews中顯示進度條。之後,請致電updateAppWidget()更改佈局並顯示進度條。然後執行你的下載任務。之後,用提取的數據填充視圖,隱藏進度指示器並再次調用updateAppWidget()將其更改回正常佈局。

名稱RemoteViews在開始時可能會使這有點混亂。它實際上不是一堆Views,你可以從你的應用程序遠程控制。這是一組視圖,可以根據需要構建,然後將其交給AppWidgetManager進行發佈。

+0

謝謝,這正是我所需要的,現在它完美的工作! – Jeff