嗨,我在处理单击小部件时遇到了正确的麻烦!我已经得到它,所以我可以在单击它时向 logcat 打印一条消息,但我不能说更改 textview 的文本或显示一个按钮。
我的主要目标是让按钮在单击小部件时变得可见,并从这里打开设置菜单或共享社交媒体选项。
这是我的更新代码(DaysTillWidget.class)
public void onUpdate(Context context, AppWidgetManager appWidgetManager,
int[] appWidgetIds) {
for (int appWidgetId : appWidgetIds) {
setAlarm(context, appWidgetId, UPDATE_RATE);
RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.main);
Intent clickIntent = new Intent(context, DaysTillWidget.class);
clickIntent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, appWidgetId);
PendingIntent pendingIntent = PendingIntent.getBroadcast(context, appWidgetId, clickIntent, 0);
views.setOnClickPendingIntent(R.id.imageView2, pendingIntent);
appWidgetManager.updateAppWidget(appWidgetId, views);
super.onUpdate(context, appWidgetManager, appWidgetIds);
}
}
这是同一类中的 onRecieve 代码
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction()==null) {
Bundle extras = intent.getExtras();
if(extras!=null) {
int widgetId = extras.getInt(AppWidgetManager.EXTRA_APPWIDGET_ID, AppWidgetManager.INVALID_APPWIDGET_ID);
// do something for the widget that has appWidgetId = widgetId
System.out.println("is this it?" + widgetId);
RemoteViews RemoteViews = new RemoteViews(context.getPackageName(), R.layout.main);
}
}
else {
super.onReceive(context, intent);
}
}
关于如何实现我的主要目标的任何想法?!我花了几个小时阅读人们有类似问题的帖子,但就是无法工作!
我不确定我的项目设置是否正确,但到目前为止我已经完成了所有其他工作?我有一个服务类和一个配置类。如果我无法让按钮显示和隐藏,我想使用该 widgetId 的 sharedprefernces 重新启动配置活动
如果您需要查看更多代码,请提前告诉我谢谢