每行中的TextView和Button以及onListItemClick()

时间:2010-08-31 17:24:47

标签: android

我有一个ListView,上面有一些元素。每行都有一个TextView和一个Button。它看起来像这样:

|连续的一些文字(按钮)|

现在,当我点击此文本时,没有任何反应。根本没有人调用任何功能。但是,当我点击按钮时,我可以处理该事件。我使用onListItemClick()

那么我应该使用什么代替TextView来处理事件(当我点击文本时)?

在此之前,我每行只有一个TextView,当我点击一行时,一切正常(onListItemClick()被调用)。

提前谢谢!

2 个答案:

答案 0 :(得分:9)

将属性focusable="false"添加到TextView ::

<TextView
...
...
        android:focusable="false"
        />

并且您可能需要对ListView中的其他元素执行相同的操作。


以编程方式,我们可以使用方法setFocusable()

v.findViewById(R.id.my_button).setFocusable(false); 
  

setFocusable():将此设置为false也会确保这一点   视图在触摸模式下无法聚焦。

答案 1 :(得分:6)

挑战是ListView和按钮争夺焦点。通常,两者中只有一个可以获得焦点(因此可以点击)。在你的事业中,按钮是可聚焦的按钮。

要调整此项,您可以使用ListView的descendantFocusability属性。

在ListView项目中有一个按钮,你想要完成什么?当你点击按钮时,你是否希望发生不同的事情?当你点击按钮外的listview项目时,你会想要吗?