我在我的ListView显示ImageButton ListView。列表视图itemclick不工作
我为ImageButton设置了focusalble“false”和focusableInTouchMode“false”。
我设置了ListView.OnItemClickListner。当我运行我的项目它显示我的ListView。
但是当我点击Listview它不工作。
然后我删除ImageButton的布局并再次运行我的项目,当我点击的ListView它的工作
错了呢?
回答
其实没有什么是错的。你在做什么是好的。但我想你忘了一个关键因素ImageButton有它自己的OnClickListener。所以当你将ImageButton嵌入到ListView行中时ListView.OnItemClickListner不起作用,因为Click/touch是由ImageButton调用的,这是因为ListView没有得到你的点击/触摸事件。 结帐此链接:How to fire onListItemClick in Listactivity with buttons in list?
我猜你是使用自定义列表视图项目只是尝试设置 设置focusable
“造假” focusableInTouchMode
“假”在你的custom_list_view_item.xml
所有观点,不要担心你的图片按钮,如果你使用适配器中的图像按钮的点击监听器,它也可以正常工作。只是做focusable
“假”,并在你的custom_list_view_item.xml focusableInTouchMode
“假”的所有观点
可能是你在适配器类书面的onclick侦听器图像按钮
例子:
imageButton.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View v) {
}
});
如果您为listItem设置了onclick监听器,它将自动消耗动作输入 ,因此列表项可能不会被点击。
你不是唯一的受害者:) 这种行为通常被认为是Android开发者的一个错误看看这个link他们的谈话。
要解决您的问题 - 只需在您的根布局中包含android:descendantFocusability="blocksDescendants"
属性。
如果您正在使用自定义的Listview
和自定义Listview
行项目列表中如果只有Textview
和Imageview
,你应该删除android:inputType=""
。它会引起可聚焦性问题。
- 1. Nullpointerexception itemclick事件的列表视图
- 2. 列表视图不工作
- 3. Onitem长按不工作列表视图
- 4. OnClickListener不工作在列表视图
- 5. LinearLayout重量不工作列表视图
- 6. OnItemClikListner不在列表视图工作
- 7. OnItemCLickListener不在列表视图工作
- 8. Android onItemClicklistener在列表视图不工作
- 9. 列表视图()不工作jquerymobile
- 10. 列表视图onItemclickListener不工作
- 11. 列表视图在C#不工作
- 12. 列表视图onItemClickListener不工作
- 13. checkbox.checked在列表视图中不工作
- 14. 列表视图滚动不工作
- 15. Grails列表视图不工作
- 16. 自定义列表视图不工作
- 17. Android的列表视图不工作
- 18. ListView OnItemClickListener不工作列表视图
- 19. ListSelector在列表视图不工作
- 20. 安卓:列表视图不工作,图片scrollling列表
- 21. ListView ItemClick不能在Xamarin.Forms(iOS)中工作
- 22. 表面视图不工作
- 23. Android的列表视图itemclick更改文本按钮
- 24. 滚动视图不能在列表视图中工作
- 25. 滚动视图与列表视图不工作
- 26. 试图让列表视图工作
- 27. Listview setOnItemClickListener - 不工作的自定义列表视图,但工作到简单的列表视图
- 28. 2个列表视图一起工作
- 29. 多级列表视图 - Android工作室
- 30. For循环阵列不工作在Android的列表视图
我们如何才能帮助您,而无需代码来说明您的问题...... – Coderji
将图像按钮设置为onclickable false,onfocusable false,并且还可以将focus设置为false。另外在适配器中设置此属性。如果你需要实现点击图像按钮,请在适配器类中进行。 –