我正在做一些 android 练习,但小部件有问题:
目标:当用户将新的小部件添加到主页时,应用程序会运行一个配置,用户可以在其中选择一个字符串。在配置期间,该字符串必须设置为我的小部件布局中唯一按钮的“文本”,并且在该按钮上,应用程序必须设置一个 onclick 侦听器,该侦听器将调用另一个将字符串作为参数传递的活动。因此,当用户单击按钮时,将调用提供按钮文本的活动。主要目标是,如果我有两个小部件,每个小部件都设置 onclick 侦听器发送不同的字符串作为参数。
编码:
int mAppWidgetId = 0;
if (extras != null) {
mAppWidgetId = extras.getInt(
AppWidgetManager.EXTRA_APPWIDGET_ID,
AppWidgetManager.INVALID_APPWIDGET_ID);
}
String thestring = ... //this string is set dynamically by the configuration
RemoteViews views = new RemoteViews(this.getPackageName(), R.widget_profile);
views.setTextViewText(R.id.buttonWidget, thestring);
Intent clickIntent = new Intent(this, afterclickactivity.class);
clickIntent.putExtra("TheString", thestring);
PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, clickIntent, 0);
views.setOnClickPendingIntent(R.id.buttonWidget, pendingIntent);
AppWidgetManager appWidgetManager = AppWidgetManager.getInstance(this);
appWidgetManager.updateAppWidget(mAppWidgetId, views);
问题:一切似乎工作正常,小部件位于主屏幕中,按钮上的文本是用户选择的文本,如果我添加相同小部件的 2 个实例,它们会根据用户选择具有不同的文本。但是,当用户按下第二个小部件上的按钮时,它会启动“afterclickactivity”,其参数与 widget1 相同,忽略第二个选择的字符串。
它像是:
小部件 1:文本:string1 onclick:callActivity(string1)
小部件 2:文本:string2 onclick:callActivity( string1 )