我如何触发一个widget按钮的东西吗? [英] How do I trigger something from a widget button?

查看:247
本文介绍了我如何触发一个widget按钮的东西吗?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

不管我做什么,我不能通过点击一个部件一个按钮触发任何东西。下面是一些code我写的,谁能告诉我,为什么在单击控件按钮时,的onReceive 不叫?

此外,我想运行按钮点击功能...基础上,code下面做我有个好主意?

 公共类WidgetProvider扩展AppWidgetProvider {    @覆盖
    公共无效的onUpdate(上下文的背景下,AppWidgetManager appWidgetManager,INT [] appWidgetIds){        意向意图=新意图(背景下,WidgetProvider.class);
        的PendingIntent的PendingIntent = PendingIntent.getBroadcast(上下文,0,意图,0);        RemoteViews意见=新的RemoteViews(context.getPackageName(),R.layout.widget);
        views.setOnClickPendingIntent(R.id.toggleButton,的PendingIntent);
        appWidgetManager.updateAppWidget(appWidgetIds [0],意见);    }    @覆盖
    公共无效的onReceive(上下文的背景下,意图意图){
        //为什么我没有拿到这里与按钮点击?
        Log.e(,intent.getAction()!);
    }
}


解决方案

尝试先调用的onReceive的超级方法。

  @覆盖
公共无效的onReceive(上下文的背景下,意图意图){
    super.onReceive(背景下,意图);
    //为什么我没有拿到这里与按钮点击?
    Log.e(,intent.getAction()!);
}

工作只是对我很好!

No matter what I do I cannot trigger anything by clicking on a button on a widget. Here is some code I wrote, can anyone tell me why onReceive isn't called when the widget button is clicked?

Furthermore, I want to run a function on button click... based on the code below do I have the right idea?

public class WidgetProvider extends AppWidgetProvider {

    @Override
    public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {

        Intent intent = new Intent(context, WidgetProvider.class);
        PendingIntent pendingIntent = PendingIntent.getBroadcast(context, 0, intent, 0);

        RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.widget);
        views.setOnClickPendingIntent(R.id.toggleButton, pendingIntent);
        appWidgetManager.updateAppWidget(appWidgetIds[0], views);

    }

    @Override
    public void onReceive(Context context, Intent intent) {
        // why don't i get here with the button click?
        Log.e("!", intent.getAction());
    }
}

解决方案

Try to call the super method of onReceive first.

 @Override
public void onReceive(Context context, Intent intent) {
    super.onReceive(context, intent);
    // why don't i get here with the button click?
    Log.e("!", intent.getAction());
}

Worked just fine for me!

这篇关于我如何触发一个widget按钮的东西吗?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆