Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/226.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 带有集合的AppWidget-单击小部件时无法运行配置活动_Android_Android Widget_Android Pendingintent_Android Appwidget - Fatal编程技术网

Android 带有集合的AppWidget-单击小部件时无法运行配置活动

Android 带有集合的AppWidget-单击小部件时无法运行配置活动,android,android-widget,android-pendingintent,android-appwidget,Android,Android Widget,Android Pendingintent,Android Appwidget,我有一个在Stackoverflow上非常流行的问题,有很多解决方法。但不幸的是,它们都不适合我 我用集合StackView创建了appWidget,为配置添加了ConfigActivity,并使用指定的时间间隔永久更新机制。小部件以正确的方式显示,更新工作正常,但当我想运行配置活动并单击小部件时,什么都不会发生 也许,我错过了一些重要的细节,希望你能给我建议。以下是一些代码片段: 显示 } widget_collection_layout.xml 经过一些调查,我得出了一个结论,如果我在a

我有一个在Stackoverflow上非常流行的问题,有很多解决方法。但不幸的是,它们都不适合我

我用集合StackView创建了appWidget,为配置添加了ConfigActivity,并使用指定的时间间隔永久更新机制。小部件以正确的方式显示,更新工作正常,但当我想运行配置活动并单击小部件时,什么都不会发生

也许,我错过了一些重要的细节,希望你能给我建议。以下是一些代码片段:

显示

}

widget_collection_layout.xml


经过一些调查,我得出了一个结论,如果我在appWidget中使用collection,并想打开整个widget容器上的配置活动,那么最好的做法是使用SetPendingEntTemplate方法,即使您不想处理项单击,而是处理整个列表容器

    private static void addWidgetListener(Context context, int appWidgetId, RemoteViews widget) {
    Intent intent = new Intent(context, ConfigActivity.class);
    intent.setAction(AppWidgetManager.ACTION_APPWIDGET_CONFIGURE);

    intent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, appWidgetId);

    intent.setData(Uri.parse(intent.toUri(Intent.URI_INTENT_SCHEME)));

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

    widget.setPendingIntentTemplate(R.id.widget_list, runConfigActivity);
}
并在WidgetFactory中的方法getViewAtint position中添加2行

    Intent intent = new Intent();
    views.setOnClickFillInIntent(R.id.widget_item_container, intent);
    private static void addWidgetListener(Context context, int appWidgetId, RemoteViews widget) {
    Intent intent = new Intent(context, ConfigActivity.class);
    intent.setAction(AppWidgetManager.ACTION_APPWIDGET_CONFIGURE);

    intent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, appWidgetId);

    intent.setData(Uri.parse(intent.toUri(Intent.URI_INTENT_SCHEME)));

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

    widget.setPendingIntentTemplate(R.id.widget_list, runConfigActivity);
}
    Intent intent = new Intent();
    views.setOnClickFillInIntent(R.id.widget_item_container, intent);