2011-06-26 33 views
4

後如何重新打開一個插件的配置活動已添加到主屏幕後?重新配置窗口小部件已添加

從谷歌搜索下面的代碼不起作用,因爲額外的小部件ID不會通過開展該活動:

String ACTION_WIDGET_CONFIGURE = "ConfigureWidget"; 
Intent configIntent = new Intent(context, Configuration.class); 
configIntent.setAction(ACTION_WIDGET_CONFIGURE); 
configIntent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, appWidgetId); 
PendingIntent configPendingIntent = PendingIntent.getActivity(context, 0, configIntent, 0); 
views.setOnClickPendingIntent(R.id.editButton, configPendingIntent); 

回答

0

不幸的是你不:小部件規範,因爲它目前存在不不支持通過小部件配置活動重新配置小部件。

你可以做的是推出小部件配置活動,然後手動跟蹤特定的控件ID:一旦新的設置是否正確,你可以利用此時,相應的管理方法手動然後更新部件。但是,您將無法使用與新部件相同的代碼路徑。

4

好吧,我已經晚了一年,但我只是在尋找與您相同的答案,並注意到代碼中缺少一個標誌,這是我前幾天討論的另一個問題的答案未決意圖,演員和小部件。嘗試改變這一行代碼的:

PendingIntent configPendingIntent 
    = PendingIntent.getActivity(context, 0, configIntent, 0); 

這樣:

PendingIntent configPendingIntent 
    = PendingIntent.getActivity(context, 0, configIntent, 
           PendingIntent.FLAG_UPDATE_CURRENT); 

PendingIntent將重用現有的匹配新的和「匹配」緩存的意圖不考慮演員,所以新演員可以忽略。添加FLAG_UPDATE_CURRENT使得PendingIntent將附加內容寫入緩存的意圖(或類似的東西)。

無論如何,上述工作對我剛纔(雖然我也用AppWidgetManager.ACTION_APPWIDGET_CONFIGURE作爲動作名稱,如果說有什麼區別)。

相關問題