setOnItemClickListener()不适用于自定义ListView @Android

Sam*_*eer 19 android listview

ListView通过扩展LinearLayout每一行实现了一个自定义.每行都有一个小缩略图,一个文本和一个check box.在list view被正确部署,我可以滚动,并通过它没有任何问题一扔.

但是ListView它似乎根本没有响应setOnItemClickListener(),所以我不得不通过getView()在每行中的Text中设置点击监听器找到一种解决方法,当我试图重用时,这显然会产生问题adapter.有没有人有办法解决吗?

bha*_*982 45

试试这个
ListView,

final ListView list = (ListView) findViewById(R.id.list);
list.setItemsCanFocus(false);
Run Code Online (Sandbox Code Playgroud)

另外,确保CheckBox里面的列表项设置为focusable false

android:focusable="false"
android:focusableInTouchMode="false"
Run Code Online (Sandbox Code Playgroud)


Ewo*_*oks 11

老回答:我在一篇文章中写道

android:focusable="false"
android:clickable="false"
Run Code Online (Sandbox Code Playgroud)

ImageButton在自定义视图中时无效.必须button.setFocusable(false);在运行时使用(来自java源代码)

编辑:有更优雅的解决方案.尝试添加android:descendantFocusability="blocksDescendants"列表元素的根布局.这将使点击onListItem成为可能,并且你可以单独处理Button或ImageButton点击


Tom*_*mas 6

对于ListView,您将项目视图设置为CheckBox

android:focusable="false"
android:clickable="false"
Run Code Online (Sandbox Code Playgroud)

http://code.google.com/p/android/issues/detail?id=3414