setOnLongClickListener与ListView BUG

时间:2013-10-21 19:57:48

标签: android listview baseadapter

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

我的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选择状态会传播到单元格内的每个视图......它就像一个魅力,但问题是当我为{{1}中的每个单元格视图添加setOnLongClickListener时子类,ListView选择状态不再传播到它的子节点,TextView更改颜色行为停止工作!

有什么想法? 牛顿

3 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

检查可能的原因:

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

答案 2 :(得分:0)

我认为您应该使用列表上下文菜单,而不是长按事件。像How to use onItemLongClick to show a context menu?

这样的问题

尝试实施上下文菜单Custom ListView and context menu. How to get it?