2011-08-28 74 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