App小部件的点击根本不起作用

时间:2016-02-11 07:31:21

标签: android android-studio android-widget

我正在创建一个应用程序,其中我必须放置一个小部件但该小部件的单击不能按预期执行。我在网上尝试过这么多不同的解决方案,但直到现在都没有任何帮助 以下是我第一次尝试的文件。

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

    for (int i = 0; i < appWidgetIds.length; i++) {

        int appWidgetId = appWidgetIds[i];

        Intent intent = new Intent(context, QuickNoteActivity.class);
        intent.setAction(AppWidgetManager.ACTION_APPWIDGET_UPDATE);
        intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

        PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);

        RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.quick_widget_layout);
        views.setOnClickPendingIntent(R.id.widgetButton, pendingIntent);

        appWidgetManager.updateAppWidget(appWidgetId, views);
    }

以上代码无法解释为什么我做了一些更改

public static String WIDGET_BUTTON = "myPackageName.WIDGET_BUTTON";

Intent intent = new Intent(context, WIDGET_BUTTON);
RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.quick_widget_layout);
            views.setOnClickPendingIntent(R.id.widgetButton, getPendingSelfIntent(context, WIDGET_BUTTON));

protected PendingIntent getPendingSelfIntent(Context context, String action) {
        Intent intent = new Intent(context, getClass());
        intent.setAction(action);
        return PendingIntent.getBroadcast(context, 0, intent, 0);
    }

但仍然没有运气。

以下是我的配置文件:

<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"
android:initialLayout="@layout/quick_widget_layout"
android:minHeight="50dp"
android:minWidth="50dp"
android:updatePeriodMillis="0"
android:widgetCategory="home_screen" />

以下是我的小部件布局

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <Button
        android:id="@+id/widgetButton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:clickable="true"
        android:text="Hello Widget" />
</LinearLayout>

Android清单文件:

<receiver android:name=".Widget.QuickNoteWidget">
        <intent-filter>
            <action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
            <action android:name=".widget.WIDGET_BUTTON" />
        </intent-filter>

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

单击该窗口小部件时,不会发生任何错误或应用程序崩溃,也不会发生其他logcat条目。

0 个答案:

没有答案