Подходящий способ инвертировать/выделить кнопку в Android

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

Теперь мне интересно, как я могу определить и установить цвета, которые я должен использовать. Моя первая идея заключалась в том, чтобы просто прочитать фон и цвет текста и переключить их, однако я не уверен, что это действительно подходящий способ сделать это. Поэтому мне было интересно, есть ли подходящий способ получения цветов.

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

Обратите внимание, что, поскольку я должен создавать кнопки динамически, я не могу установить их в XML.


person Devolus    schedule 12.05.2013    source источник


Ответы (1)


Вы можете просто использовать ToggleButton, так что Android позаботится о маркировке кнопка "нажата" как выбранная.

Поскольку ToggleButton является View, он имеет setOnLongClickListener(Listener)-метод, который можно использовать, чтобы сделать ToggleButton активным при длительном щелчке.

person Lukas Knuth    schedule 12.05.2013
comment
Думаю, на данный момент это лучшее решение. Возможно, позже я переделаю свое приложение и украшу его, но это, по крайней мере, стандартизированный способ. - person Devolus; 12.05.2013