【问题标题】:Android Studio default app Widget with Configure Activity带有配置活动的 Android Studio 默认应用小部件
【发布时间】:2016-10-29 11:02:30
【问题描述】:
我对默认的 Android Studio 应用小部件有问题(NEW→XML→WIDGET→APP WIDGET)
很快,Android Studio 提供的默认应用小部件就是这样工作的:
- 将示例小部件放在主屏幕上会自动启动配置活动
- 您可以添加文本 (TextView),然后单击添加小部件按钮接受此操作
- 配置活动正在关闭,并且在主屏幕上,正在显示示例小部件(现在在小部件上,您可以看到几秒钟前在配置活动中输入的文本)。
我想为这个示例添加新功能。如果再次打开配置活动,请单击小部件。 (在默认设计中,无法再打开配置活动)。
我尝试在 Stack Overflow 上搜索它,但我发现示例不适用于该默认应用小部件... ;/
【问题讨论】:
标签:
android
android-activity
widget
android-appwidget
【解决方案1】:
最后,我找到了解决方案:
Multiple Instances Of Widget Only Updating Last widget
在这一行是我的问题。
PendingIntent widgetPendingIntent = PendingIntent.getActivity(context, appWidgetId, widgetIntent, 0);
把下面的代码放到Widget类中
static void updateAppWidget(Context context, AppWidgetManager appWidgetManager,
int appWidgetId) {
//Setup onClick
Intent widgetIntent = new Intent(context,PaydayWidgetConfigureActivity.class);
widgetIntent.setAction("android.appwidget.action.APPWIDGET_UPDATE");
widgetIntent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, appWidgetId);
PendingIntent widgetPendingIntent = PendingIntent.getActivity(context, appWidgetId, widgetIntent, 0);
CharSequence widgetText = PaydayWidgetConfigureActivity.loadTitlePref(context, appWidgetId);
RemoteViews remoteView = new RemoteViews(context.getPackageName(), R.layout.payday_widget);
remoteView.setTextViewText(R.id.appwidget_text, widgetText);
remoteView.setOnClickPendingIntent(R.id.appwidget_text, widgetPendingIntent);
// Tell the widget manager
appWidgetManager.updateAppWidget(appWidgetId, remoteView);
}