Android - прослушивание отключенной кнопки - PullRequest
9 голосов
/ 26 января 2012

Как мне отреагировать на событие, щелкнув отключенное Button. У меня есть требование, что я должен представить Dialog, когда нажата отключенная Button, но назначенный слушатель не запускается, даже когда я setClickable(false)

Я нуб андроид, извините.

Ответы [ 7 ]

8 голосов
/ 26 ноября 2018

Например, вместо этого вы можете использовать метод #setActivated().Отключение представления будет игнорировать все события.https://developer.android.com/reference/android/view/View.html#setActivated(boolean). Затем вы можете настроить стили текста и фона с атрибутом android:state_activate, если вам нужно:

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_activated="false"
      android:color="@color/a_color" />
    <item android:state_activated="true"
      android:color="@color/another_color" />
</selector>
7 голосов
/ 26 января 2012

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

4 голосов
/ 26 января 2012

Вместо того, чтобы отключить его, оставьте его включенным, но используйте флаг для управления вашим «внутренним состоянием»

1 голос
/ 21 декабря 2014

Я искал это, но у меня не было ничего, чтобы слушать блок EditText. Поэтому я нахожу другой способ активировать его. Если есть кнопка рядом или область, которую вы уже слушаете, вы можете включить SetOnLongClickListener, чтобы активировать блок. Это будет секретом, но вы можете сказать пользователям.

button.setOnLongClickListener(new OnLongClickListener() { 
        @Override
        public boolean onLongClick(View v) {
            // TODO Auto-generated method stub
            editText.setEnabled(true)
            return true;
        }
    });

enter image description here

1 голос
/ 25 апреля 2014

Я решил эту проблему, используя флаг, чтобы сохранить состояние моей кнопки.

private boolean isMyButtonEnabled = false;

public void onMyButtonClick(View v) {
   if(isMyButtonEnabled){
      ..
   }
}
0 голосов
/ 28 июня 2018

Вы должны использовать активированное состояние, чтобы включить или отключить кнопку.Это кликабельно или как кто-то указывает использование выбранного или проверенного состояния.Каждое из этих состояний имеет различное значение, поэтому используйте его осторожно

0 голосов
/ 25 апреля 2017

Я собираюсь заняться этим с помощью состояния selected, которое обычно доступно для использования в виджетах и ​​может быть использовано в списках состояния списка. Простой поиск для использования isSelected приводит к результатам в ListView, GridView, TextView и TabLayout. И документация гласит

Представления, как правило, * выбран в контексте AdapterView, например ListView или GridView; * выбранный вид является видом, который выделен.

...