单击小部件

时间:2013-06-17 20:16:19

标签: android android-widget android-pendingintent

我在处理小部件点击时遇到了麻烦!我已经得到它所以我可以在点击它时向logcat打印一条消息,但我不能说改变textview的文本或显示一个按钮。

我的主要目标是在点击窗口小部件时显示一个按钮,然后从此处打开设置菜单或共享社交媒体选项。

这是我的On Update代码(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的共享偏好

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

0 个答案:

没有答案