0

setOnLongClickListener在为 ListView 中的每一行设置 a 时,我看到了一个奇怪的行为。为了解释,这里有一点背景:

我的 ListView 有一个自定义单元格,当单击单元格时,我想更改每个 TextView 的颜色,所以在我的cell_layout.xml我包括:

android:duplicateParentState="true"
android:textColor="@drawable/cell_textview_colors_black"

并且@drawable/cell_textview_colors_black是一个包含两个项目的选择器:

<item android:state_pressed="true" android:color="@color/white"/>
<item android:color="@color/black"/>

这样 ListView 选定状态将传播到单元格内的每个视图......它就像一个魅力,但问题是当我setOnLongClickListener为我的子类中的每个单元格视图添加一个时BaseAdapter,ListView 选定状态将不会传播到它的孩子了并且 TextView 更改颜色行为停止工作!

有什么想法吗?牛顿

4

3 回答 3

1

也许您应该将 onLongClickListener 设置为 ListView 而不是每一行:)

于 2013-10-21T20:50:08.103 回答
0

检查的可能原因:

您是否在列表视图上使用 ContextMenu?即你 在你的活动中使用方法registerForContextMenu(android.view.View)吗?它可能会影响长按其他项目的行为。

于 2013-10-21T20:46:49.333 回答
0

我认为您应该使用列表上下文菜单,而不是长按事件。有像你这样的问题如何使用 onItemLongClick 显示上下文菜单?

尝试实现上下文菜单自定义 ListView 和上下文菜单。如何得到它?

于 2013-10-21T21:56:25.107 回答