使用Button,Android Row变为Unclickable

Kle*_*ine 18 java android

我有一个listView,其中每行在行布局中都有一个按钮.但是,这似乎使行本身无法点击.如何使按钮和行都可以点击?

谢谢.

jqp*_*liq 25

您需要在列表上设置itemsCanFocus,如下所示:

    mList.setItemsCanFocus(true);
Run Code Online (Sandbox Code Playgroud)

使按钮可单击.然后,您将需要使用自己的适配器,并在getView中返回一个可点击且可聚焦的视图.您还将丢失默认突出显示状态,因此您需要将它们重新放入后台资源.这样做:

    view.setClickable(true);
    view.setFocusable(true);
    view.setBackgroundResource(android.R.drawable.menuitem_background);
Run Code Online (Sandbox Code Playgroud)

返回视图前的视图.

  • 这不起作用.从不调用AdapterView.OnItemClickListener. (6认同)
  • 非常感谢你.另外,我必须在视图中添加一个OnClickListener. (3认同)

小智 9

每当我看到关于android:focusableandroid:clickable属性的帖子时,我总是看到它们同时被设置为相同的值.我认为必须有一个理由,如果它们是两个独立的属性而不是一个.

事实证明,实现理想行为的更好方法是设置

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

要么

yourButton.setFocusable(false)
Run Code Online (Sandbox Code Playgroud)

Button在你的View.一旦你这样做,你既可以设置OnClickListenerButton,并在该行一点击就会触发该onListItemClick()方法在你的OnItemClickListener.