小部件onClick中的Android ListView不起作用

Posted

技术标签:

【中文标题】小部件onClick中的Android ListView不起作用【英文标题】:Android ListView in widget onClick not working 【发布时间】:2013-01-12 00:59:30 【问题描述】:

我正在尝试使用 setOnClickFillInIntent 方法使我的 ListView 小部件中的列表行可点击,但每当我点击 ListItem 时,什么都没有发生。以下是我的代码的一些关键部分:

Intent i = new Intent();
Bundle extras = new Bundle();

extras.putInt(Resource.WIDGET_PACKAGE, position);
i.putExtras(extras);
row.setOnClickFillInIntent(R.id.widget_layout_parent, i);

这是在我的 ViewFactory 中 getView() 的末尾。 Resource.WIDGET_PACKAGE 包含我的包名称,就像任何其他键一样。位置 int 来自 getView() 参数。 R.id.widget_layout_parent 是所有列表项的父布局。

我的 WidgetProviders onUpdate() 到此结束

Intent clickIntent = new Intent(context, ItemListActivity.class);

PendingIntent clickPI = PendingIntent.getActivity(context, 0,
        clickIntent, PendingIntent.FLAG_UPDATE_CURRENT);

widget.setPendingIntentTemplate(R.id.widget_layout_parent, clickPI);

appWidgetManager.notifyAppWidgetViewDataChanged(appWidgetIds[i],
        R.id.widget_list_view);

我有什么遗漏的吗,或者您还有什么想知道的吗?

感谢所有帮助! :)

【问题讨论】:

【参考方案1】:

当您调用setPendingIntentTemplate(...) 时,id 应该是 AdapterView(在本例中为 ListView)。当您调用setOnClickFillInIntent(...) 时,id 应该是项目布局的根视图,如果我正确阅读了您的原始帖子,这就是您已经在做的事情。

public void onUpdate(Context context, AppWidgetManager manager, int[] appWidgetIds) 
    /* ... */
    widget.setPendingIntentTemplate(R.id.appwidget_listview, clickPI);
    /* ... */


public RemoteViews getViewAt(int position) 
    /* ... */
    row.setOnClickFillInIntent(R.id.widget_layout_parent, intent);
    /* ... */
    return row;

【讨论】:

优秀的答案!经过数小时的研究,这正是我一直在寻找的答案。 有没有人有android小部件中listview onclick的完整代码示例?我按照laaptu.wordpress.com/2013/07/19/… 的例子,但是没有onclick 项目。我试图添加 onclick 但它不起作用。 :( @MostafaImran 在这里详细介绍:developer.android.com/guide/topics/appwidgets/…。如果您有具体问题,请打开一个新问题并提供足够的代码和信息以便我们提供帮助。【参考方案2】:

@karakuri 的上述回答非常完美。

setPendingIntentTemplate 和 setOnClickFillInIntent 必须一起使用。一个离不开另一个。

【讨论】:

以上是关于小部件onClick中的Android ListView不起作用的主要内容,如果未能解决你的问题,请参考以下文章

Android 小部件按钮 Onclick Toast 消息

Flutter ListVİew 总是在向上或向下滚动时重新渲染

Android Widget 更新服务,多个 onclick 监听器

Android小部件:如何确定单击了哪个按钮?

Android:可点击的图像视图小部件

小部件 Onclick 不起作用