Android小部件的onClick无法工作

3

我真的不知道我在这里做错了什么。昨晚我把它弄好了,然后我改了一下代码,我很确定我已经把它改回来了,但是当我点击它时它根本就没有任何反应。

这是我的代码:

    public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
    Log.d(LOG_TAG, "onUpdate(): ");

    for (int appWidgetId : appWidgetIds) {


    Intent intent = new Intent(Intent.ACTION_VIEW,Uri.parse("market://details?id=com.xx.xx"));
    PendingIntent pendingIntent = PendingIntent.getActivity(context, appWidgetId, intent, PendingIntent.FLAG_UPDATE_CURRENT );


    RemoteViews remoteView = new RemoteViews(context.getPackageName(), R.layout.widget);
    remoteView.setOnClickPendingIntent(R.id.image, pendingIntent);

    }        
    super.onUpdate(context, appWidgetManager, appWidgetIds);

当小部件被点击时,我只是想把用户带到市场,但什么也没发生。

这是一个简单的修复吗?

2个回答

7

天啊,我已经花了4-5个小时在这上面了...才意识到我的错误。

在我的 setOnClickPendingIntent 后,我缺少了“appWidgetManager.updateAppWidget(appWidgetId, remoteView);”。

编程的乐趣啊。


0

为了处理主屏幕小部件上的点击事件,您需要在清单文件中注册一个自定义接收器:

<intent-filter>
    <action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
    <action android:name="com.imranandroid.xxx.xxxx.ACTION_WIDGET_CLICK"/>
    <action android:name="android.appwidget.action.APPWIDGET_DELETED"/>

</intent-filter>
    <meta-data android:name="android.appwidget.provider"
        android:resource="@xml/widget_info" />
</receiver>

并将此操作与 Widget 布局或按钮相关联:

public class SlientwidgetProvider extends AppWidgetProvider {
    public static String ACTION_WIDGET_CLICK= "ActionReceiverClick";
public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {  
   RemoteViews rview = new RemoteViews(paramContext.getPackageName(), R.layout.widget_layoutmain);
    Intent active = new Intent(paramContext, SlientwidgetProvider.class);
    active.setAction(Globfilds.ACTION_WIDGET_CLICK);
    ///....

你可以在这里看到处理主屏小部件点击的完整代码:

Silenttoggle


很抱歉,这个方法没有起作用。不过还是谢谢你。这种方法与我在互联网上看到的几乎所有其他方法都有很大的不同。 - jblz
@jblz:没问题。我不需要整个代码,只是想看看我们如何实现小部件的点击。这不是从互联网上找到的例子。 - ρяσѕρєя K

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接