Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/223.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何在小部件内设置onClickListener on按钮?_Android_Android Widget - Fatal编程技术网

Android 如何在小部件内设置onClickListener on按钮?

Android 如何在小部件内设置onClickListener on按钮?,android,android-widget,Android,Android Widget,我已经试着按照这个做了。但不知怎么的,它不起作用。 没有错误,这可能会给出解决方法的线索 在我的舱单中,我有一个接收者: <receiver android:name=".ImageReceiver"> <intent-filter> <action android:name="android.appwidget.action.APPWIDGET_UPDATE" /> </intent-filter> <

我已经试着按照这个做了。但不知怎么的,它不起作用。 没有错误,这可能会给出解决方法的线索

在我的舱单中,我有一个接收者:

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

当我点击Button bRefresh时,它应该会显示Toast Button click,但不会显示。如何解决此问题?

在更新中

views.setOnClickPendingIntent(R.id.widget_retry, getPendingSelfIntent(context, MyOnClick));
而不是采取

    private static final String MyOnClick = "myOnClickTag";

    protected PendingIntent getPendingSelfIntent(Context context, String action)
    {
        // if we brodcast than definetly we have to define ONRECEIVE
        Intent intent = new Intent(context, getClass());
        intent.setAction(action);
        return PendingIntent.getBroadcast(context, 0, intent, 0);
    }
以及


以上代码为我工作

无论何时创建自己的操作,都必须在AndroidManifest.xml文件中注册它。因此,在AndroidManifest.xml文件的receiver->intent过滤器中添加这一行

<receiver android:name=".ImageReceiver">
<intent-filter>
    <action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
    <action android:name="REFRESH_BUTTON_CLICKED"/> // Add this Line
</intent-filter>
<meta-data android:name="android.appwidget.provider"
    android:resource="@xml/widget_image" />
</receiver>

尝试返回PendingEvent.getActivitycontext,0,intent,0@MD,没有效果。我还能做什么?
views.setOnClickPendingIntent(R.id.widget_retry, getPendingSelfIntent(context, MyOnClick));
    private static final String MyOnClick = "myOnClickTag";

    protected PendingIntent getPendingSelfIntent(Context context, String action)
    {
        // if we brodcast than definetly we have to define ONRECEIVE
        Intent intent = new Intent(context, getClass());
        intent.setAction(action);
        return PendingIntent.getBroadcast(context, 0, intent, 0);
    }
@Override
public void onReceive(Context context, Intent intent)
{
    // TODO Auto-generated method stub
    super.onReceive(context, intent);

            if (MyOnClick.equals(intent.getAction()))
            {
                //your onClick action is here

            }
}
<receiver android:name=".ImageReceiver">
<intent-filter>
    <action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
    <action android:name="REFRESH_BUTTON_CLICKED"/> // Add this Line
</intent-filter>
<meta-data android:name="android.appwidget.provider"
    android:resource="@xml/widget_image" />
</receiver>