android小部件内ListView中的多个可点击项目

Posted

技术标签:

【中文标题】android小部件内ListView中的多个可点击项目【英文标题】:Multiple clickable items in ListView inside android widget 【发布时间】:2015-06-02 07:53:08 【问题描述】:

我正在尝试在每行中有多个可点击项目的小部件中制作 ListView。例如,如果每一行都有包含链接的数据,则该行中的一个按钮用于打开链接,另一个按钮用于共享链接。

示例代码:

小部件布局

<LinearLayout...>

<TextView../>
<ListView with id="list_view" />

</LinearLayout>

ListView 中的每个列表行都有:

<LinearLayout with id="listRowParent">

<TextView../>
<Button with id="openBtn"/>
<Button with id="shareBtn"/>

</LinearLayout>

我可以使用

设置每一行的 onClick
remoteViews.setPendingIntentTemplate(R.id.list_view,
                    *<PendingIntent>*); //in onUpdate

remoteView.setOnClickFillInIntent(R.id.openBtn, *fillIntent*); // in adapter

效果很好,但我不能通过执行 remoteViews.setPendingIntentTemplate(R.id.shareBtn, ); 因为如果我这样做,单击按钮不会发生任何事情。

问题: 我正在尝试的可能吗?如果是,非常感谢您的帮助:)

【问题讨论】:

我怀疑您的按钮问题是它与 TextView 重叠。在这种情况下,您需要使用 layout_weight、重力或设置宽度(不灵活)的想法来修改布局。这样按钮就不会重叠和可见。为您的按钮添加大文本,以便您可以在 Listview 中清楚地看到它们。通常我会提供样品。但现在,您可以先尝试一下,看看我们能做些什么。 我正在使用 layout_weight,按钮不太可能重叠,因为按钮在被触摸时会突出显示。我试过删除文本视图并只保留两个按钮,但它仍然不起作用。 【参考方案1】:

我的错。我应该使用

remoteViews.setPendingIntentTemplate(R.id.list_view,
                    *<PendingIntent>*);

对于这两个按钮,但我试图在第二个中直接使用按钮的 ID。修好了。

【讨论】:

我正面临着确切的问题。你能分享一下 getViewAt() 代码吗?

以上是关于android小部件内ListView中的多个可点击项目的主要内容,如果未能解决你的问题,请参考以下文章

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

Android小部件listview句柄点击

Android:使用 ListView 和 Service 从应用小部件开始活动

当 onDatasetChanged 方法包含异步网络调用 Android 时,小部件 ListView 不刷新

带有 ListView 的 Android 小部件无法正确加载项目

带有集合(ListView)的Android小部件不显示项目