Android togglebutton что это

ToggleButton (Кнопка-переключатель)

Общая информация

Компонент ToggleButton по своей функциональности похож на флажок (checkbox) или переключатель (radiobutton) — это кнопка, которая может находиться в одном из двух состояний: активна (On) или неактивна (Off). По умолчанию на кнопке написано «Оn», если она активна, и «Off» — если нет. По внешнему виду это обычная кнопка с декоративной полоской в нижней части, которая подсвечивается в включенном состоянии (имитация LED-индикатора).

Находится в разделе Widgets:

Если надписи On/Off для вашей программы не подходят, их можно изменить при помощи свойств Text on (атрибут android:textOn) и Text off (атрибут android:textOff). Поскольку надписи Оn и Off на кнопке-переключателе являются отдельными атрибутами, атрибут android: text не используется, он доступен, так как наследуется от ТextView, но в данном случае без него можно обойтись. В программном коде им соответствуют методы setTextOff() и setTextOn().

По умолчанию, ToggleButton находится в выключенном состоянии, чтобы его «включить», установите свойство checked в значение true. Свойству соответствует метод setChecked(boolean checked).

Основное событие ToggleButton — изменение состояния кнопки onCheckedChanged().

Напишем демонстрационную программу с использованием ToggleButton. Добавим на форму метку, изображение и кнопку-переключатель:

Для создания обработчика события изменения состояния кнопки необходима реализация интерфейса CompoundButton.OnCheckedChangeListener. Интерфейс имеет единственный метод onCheckedChanged(), который необходимо переопределить в нашем классе. При обработке события для определения состояния используется параметр isChecked.

Стилизация

Создайте два изображения для каждого состояния кнопки-переключателя в формате 9-patch, например, btn_toggle_off.9.png и btn_toggle_on.9.png. Разместите картинки в папке res/drawable-hdpi/ (или в других).

Далее создаются два XML-файла в папке res/drawable:

btn_toggle_bg.xml (отвечает за фон):

btn_toggle.xml (выводит нужное изображение в разных состояниях)

Также можно определить стиль и тему для кнопки. В файле res/values/themes.xml пропишите:

Сообщите системе, что нужно использовать новый стиль для кнопки:

Источник

Андроид — кастомные View или ToggleButton 4×4

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

Когда (уже достаточно давно) в одном из своих проектов я столкнулся с необходимостью выбора в настройках одного из трех параметров, решение было очевидно — RadioButton. Но по ряду причин, типа экономии места на экране и некоторых других, возникло желание использовать нечто вроде ToggleButton. Поскольку стандартный Toggle имеет лишь два состояния, был использован костыль в виде программной обработки некоей циклично меняющейся переменной, в зависимости от которой менялись свойства стандартного элемента вроде обычной Button или ImageButton – уже даже не помню. Способ вполне работоспособный, однако не без греха. Первый и самый главный – нарушается Генеральная линия партии, призывающая к раздельному хранению ресурсов и программного кода. Ну и при большом количестве подобных элементов управления код теряет всю свою изящность и привлекательность. Инкапсуляция, опять же, жутко страдает. Посему было решено создать кастомный элемент.

Читайте также:  Где найти контакты с андроида

Представленный пример не представляет из себя ничего сложного для опытного разработчика, однако я в свое время был бы весьма рад найти подобное в одном месте, а не собирать по кусочкам. Давайте попытаемся создать кастомный ToggleButton, имеющий произвольное количество (в данном случае четыре) циклически переключающихся состояний. В зависимости от состояния в приведенном примере меняется надпись на кнопке и значок состояния слева (DrawableLeft у кнопки). Однако все настолько просто и прозрачно, что легко применить изменение состояния к любым свойствам контрола.

Первое, что нам необходимо – описать нужные нам свойства в файле res/values/attrs.xml. Как мы уже решили, это будут четыре строки и четыре изображения для различных состояний элемента управления:

Теперь можем перейти непосредственно к коду нового класса. Отнаследуем его от обычной Button.

Я опустил импорты для экономии, если что – Эклипс подскажет.

Теперь, когда новый класс создан, мы можем добавить его на разметку и канонично указать свойства в xml-файле, не забыв добавить свое пространство имен:

Как говорится, profit.

Мы получили скелет, с которым дальше можем извращаться как угодно. Как варианты: вместо константы STATE_COUNT добавить соответствующие атрибут и метод типа setStateCount(), что позволит программно динамически ограничивать количество доступных состояний. Полный простор для фантазии.

На этом собственно все. Спасибо за внимание.

Источник

ToggleButton

ToggleButton (кнопка-переключатель) позволяет пользователю изменять состояние кнопки с On на Off или наоборот. О текущем состоянии кнопки сообщает надпись на ней и индикатор под кнопкой.

Предназначение этого виджета заключается в том, чтобы менять состояние кнопки и выполнять соответствующие операции. Например, его можно использовать как индикатор включения/выключения звука, Wi-Fi, Bluetooth и т.п.

На данный момент этот компонент не так распространён, поскольку в Android SDK был добавлен виджет Switch, выполняющий схожие задачи.

Текст, отображаемый в состояниях кнопки, можно изменить. Делается это либо через XML, либо программно:

    Через XML. Для этого нужно в разметке, где определён виджет ToggleButton, добавить атрибуты android:textOn и android:textOff. Например:

В этом случае стандартные On и Off будут заменены на то, что мы написали в значение атрибутов.

Программно. Для начала добавим идентификатор для кнопки.

Затем определим кнопку в коде активности и вызовем методы setTextOff() и setTextOn(), чтобы задать текст для выключенного и включенного состояния соответственно.

Обрабатывать нажатия на ToggleButton можно через метод setOnCheckedChangeListener() или через интерфейс OnCheckedChangeListener (о том, как пользоваться интерфейсами, описано здесь). Добавим для кнопки слушатель, который будет отслеживать состояние кнопки.

Читайте также:  Живые обои для андроида сердечки

Узнать текущее состояние кнопки можно с помощью метода isChecked(), который возвращает false, если кнопка в выключенном состоянии, и true — в включенном.

Также имеется возможность задать состояние программно. Для этого нужно вызвать метод setChecked(), например.

Кроме того, можно использовать функционал ToggleButton иначе. Например, можно сделать из компонента кнопку Like. Для этого создадим селектор, который будет подставлять нужный фон в зависимости от состояния.

Затем в коде разметки укажем этот селектор в качестве фона и уберем текст в обоих состояниях.

В результате получили простую кнопку, которая при смене состояния меняет свой фон на указанный в селекторе.

Источник

ToggleButton

В этом разделе вы создадите кнопку, которая используется специально для переключения между двумя состояниями с помощью мини-приложения ToggleButton . Это мини-приложение является отличной альтернативой переключателям, если имеется два простых состояния, которые являются взаимоисключающими (например, «on» и «OFF»). Android 4,0 (API уровня 14) представляет собой альтернативу выключателю, известному как Switch .

Пример выключателя можно увидеть в левой паре изображений, в то время как в правой части изображений представлен пример переключателя:

Элемент управления, используемый приложением, зависит от стиля. Оба мини-приложения функционально эквивалентны.

Откройте файл Resources/Layout/Main. axml и добавьте элемент (внутри него LinearLayout ):

Чтобы сделать что-то при изменении состояния, добавьте следующий код в конец элемента OnCreate() Method

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

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

Если необходимо изменить состояние самостоятельно (например, при загрузке сохраненного CheckBoxPreference ), используйте Checked метод задания свойства илиМетод Toggle() .

Источник

Android — ToggleButton Control

A ToggleButton displays checked/unchecked states as a button. It is basically an on/off button with a light indicator.

Toggle Button

ToggleButton Attributes

Following are the important attributes related to ToggleButton control. You can check Android official documentation for complete list of attributes and related methods which you can use to change these attributes are run time.

This is the alpha to apply to the indicator when disabled.

This is the text for the button when it is not checked.

This is the text for the button when it is checked.

Inherited from android.widget.TextView Class −

Sr.No. Attribute & Description
1

If set, specifies that this TextView has a textual input method and automatically corrects some common spelling errors.

This is the drawable to be drawn below the text.

This is the drawable to be drawn to the right of the text.

If set, specifies that this TextView has an input method.

This is the Text to display.

Inherited from android.view.View Class −

Sr.No. Attribute & Description
1

This is a drawable to use as the background.

This defines text that briefly describes content of the view.

This supplies an identifier name for this view,

This is the name of the method in this View’s context to invoke when the view is clicked.

This controls the initial visibility of the view.

Example

This example will take you through simple steps to show how to create your own Android application using Linear Layout and ToggleButton.

Sr.No. Attribute & Description
1
Step Description
1 You will use Android studio IDE to create an Android application and name it as My Application under a package com.example.saira_000.myapplication as explained in the Hello World Example chapter.
2 Modify src/MainActivity.java file to add a click event.
2 Modify the default content of res/layout/activity_main.xml file to include Android UI control.
3 No need to declare default constants.Android studio takes care of default constants at string.xml
4 Run the application to launch Android emulator and verify the result of the changes done in the application.

Following is the content of the modified main activity file src/MainActivity.java. This file can include each of the fundamental lifecycle methods.

In the below example abc indicates the image of tutorialspoint

Following will be the content of res/layout/activity_main.xml file −

Following will be the content of res/values/strings.xml to define these new constants −

Following is the default content of AndroidManifest.xml

Let’s try to run your My Application application. I assume you had created your AVD while doing environment setup. To run the app from Android studio, open one of your project’s activity files and click Run icon from the toolbar. Android studio installs the app on your AVD and starts it and if everything is fine with your setup and application, it will display following Emulator window −

The following screen will appear −

If you have clicked first on Button, you would get a message on Toast as You have clicked first ON Button-:) or else if you clicked on second on button, you would get a message on Toast as You have clicked Second ON Button -:)

Exercise

I will recommend to try above example with different attributes of ToggleButton in Layout XML file as well at programming time to have different look and feel of the ToggleButton. Try to make it editable, change to font color, font family, width, textSize etc and see the result. You can also try above example with multiple ToggleButton controls in one activity.

Источник

Читайте также:  Как удалить значок с рабочего стола андроид хонор 10 лайт
Оцените статью