Пользовательская кнопка в Android не сохраняет состояние - PullRequest
0 голосов
/ 07 февраля 2011

Я создал пользовательскую кнопку следующим образом.

файл: buttoncontrol.xml

<?xml version="1.0" encoding="utf-8"?>
<selector
    xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/greendot"
          android:state_pressed="true" />
    <item android:drawable="@drawable/reddot" />
</selector>

в файле макета .. Я использовал

    <Button
     ...
        android:background="@drawable/buttoncontrol"></Button>

При попытке запустить программу макет показывает кнопку с Reddot (ожидаемый результат). Когда я нажимаю кнопку, она становится зеленой, пока я не отпущу нажатие клавиши. Как я могу сделать это зеленым до следующего щелчка. Больше переключать поведение.

Я тоже попробовал тот же XML-файл в кнопке переключения. Тот же результат.

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

...under onClick of  Button/ToggleButton
buttonControl.setPressed(true);

Есть предложения? Я предпочитаю избегать программного контроля государства. я всегда могу сохранить эти изображения и использовать buttonContol.setBackgroundDrawable для кнопок

Спасибо

Ответы [ 2 ]

0 голосов
/ 07 февраля 2011

Стандартная кнопка не имеет понятия о постоянном состоянии.Вы должны создать собственную реализацию Button, которая отслеживает различные состояния.Извините, но нет никакого способа обойти это.

0 голосов
/ 07 февраля 2011

Я заставил ToggleButton работать, изменив android: state_pressed = "true" на android: state_checked = "true".

Но вопрос по-прежнему остается для Button.Как заставить кнопку делать подобное действие?Особенно, когда существует более двух состояний.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...