Android Row становится Unclickable с кнопкой

У меня есть listView, где каждая строка имеет кнопку в макете строк. Однако, похоже, это делает строку самой непривлекательной. Как я могу сделать кнопку и строку нажатой?

Благодарю.

Вам нужно установить itemsCanFocus в списке следующим образом:

mList.setItemsCanFocus(true); 

Чтобы сделать кнопку нажатой. Затем вам нужно будет использовать свой собственный адаптер, а в getView вернуть представление, которое является Clickable и настраиваемым. Вы также потеряете состояния подсветки по умолчанию, поэтому вам нужно вернуть их обратно в фоновый ресурс. Так сделайте так:

  view.setClickable(true); view.setFocusable(true); view.setBackgroundResource(android.R.drawable.menuitem_background); 

на ваш взгляд, прежде чем возвращать свое мнение.

Всякий раз, когда я вижу сообщения об android:focusable и android:clickable , я всегда вижу, что они одновременно устанавливаются одинаковыми значениями одновременно. Я решил, что должна быть причина, если они являются двумя отдельными атрибутами, а не одной.

Оказывается, что гораздо лучший способ добиться желаемого поведения – установить

 android:focusable="false" 

или

 yourButton.setFocusable(false) 

на Button в вашем View . Как только вы это сделаете, вы сможете установить OnClickListener на Button , и щелчок по строке вызовет метод onListItemClick() в вашем OnItemClickListener .

Постарайтесь, чтобы ваши виджеты не подвергались клики и не подвергались фокусировке в xml, щелчок по элементам будет работать нормально, а кнопка щелчка будет работать нормально.

 android:clickable="false" android:focusable="false" 

Надеюсь это поможет.

К сожалению, я не думаю, что это возможно. Строка ListView может иметь либо настраиваемые виджеты, либо кнопку, либо кликать, а не обе. См. Ссылку.

  • Почему константы массива могут использоваться только в инициализаторах?
  • Максимальный предел примитивного типа Java Long
  • Как отображать данные из Firestore в RecyclerView с Android?
  • Почему class Java должен быть сопоставимым?
  • Метод getText () должен быть вызван из streamа пользовательского интерфейса (Android Studio)
  • Передача массивов с помощью Intent.putExtra
  • READ_EXTERNAL_STORAGE разрешение для Android
  • Is -Djava.library.path = ... эквивалентно System.setProperty ("java.library.path", ...)
  • getString вне контекста или действия
  • Шифрование видеофайлов?
  • Как импортировать com.android.internal.telephony.ITelephony в приложение Android
  • Interesting Posts

    Как загрузить файл с URL-адреса в C #?

    MapView в fragmentе (соты)

    Как получить значение раздела реестра из пакетного скрипта?

    Внешняя папка вывода в eclipse

    Могу ли я использовать оперативную память для ноутбуков на рабочем столе?

    Логическое поле в Oracle

    Android: Можете ли вы вложить fragmentы?

    Как использовать андроидный canvas, чтобы нарисовать прямоугольник с круговыми углами только на вершине и вправо?

    В MacOS X, как мне запретить папку с расширением .theme рассматриваться как пакет?

    Как определить событие дрожания с помощью андроида?

    Сообщение Android «Обнаружение экрана», если пользователь пытается предоставить разрешение при показе уведомления

    Задержка HTML5: недопустимый псевдоclass до первого события

    jquery ui Диалог: не может вызывать методы в диалоге перед инициализацией

    Добавление атрибута данных в DOM

    Entity Framework 4.1 загрузка по умолчанию по умолчанию

    Давайте будем гением компьютера.