0

嗨,我在处理单击小部件时遇到了正确的麻烦!我已经得到它,所以我可以在单击它时向 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 重新启动配置活动

如果您需要查看更多代码,请提前告诉我谢谢

4

0 回答 0