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

Luk*_*ryc 11 android

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

| 一些文本连续(按钮)|

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

那么我应该使用什么而不是这个TextView来处理事件(当我点击文本时)?

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

先感谢您!

Jor*_*sys 9

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

<TextView
...
...
        android:focusable="false"
        />
Run Code Online (Sandbox Code Playgroud)

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


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

v.findViewById(R.id.my_button).setFocusable(false); 
Run Code Online (Sandbox Code Playgroud)

setFocusable():将此设置为false还将确保此视图在触摸模式下不可聚焦.

  • 这将适用于textview,但对于imagebutton,也许你需要,在适配器getView上放置代码`v.findViewById(R.id.my_btn).setFocusable(false);` (2认同)

Che*_*mon 6

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

要调整它,您可以使用ListView 的descendantFocusability属性.

你想通过ListView项目中的按钮来完成什么?当您单击按钮时,您是否希望发生不同的事情?当您单击按钮外部的listview项目时?

  • http://stackoverflow.com/questions/500264/android-multiple-actions-on-a-list-view-focus-issue这对我有帮助.感谢您注意人们使用此类应用的方式.通常,在这种情况下使用例如上下文菜单会更好. (2认同)