Deprecation notice: this library is no longer maintained. If you are currently using it, we reccomend switching to the fork by its original developer: https://github.com/llollox/Android-Toggle-Switch
A customizable extension of Android Switches that supports also more than 2 items.
Add Gradle dependency:
dependencies {
compile 'us.belka:androidtoggleswitch:1.2.2'
}<dependency>
<groupId>us.belka</groupId>
<artifactId>androidtoggleswitch</artifactId>
<version>1.2.2</version>
<type>pom</type>
</dependency><belka.us.androidtoggleswitch.widgets.ToggleSwitch
android:layout_width="wrap_content"android:layout_height="wrap_content"custom:textToggleLeft="OR"custom:textToggleRight="AND"/><belka.us.androidtoggleswitch.widgets.ToggleSwitch
android:layout_width="wrap_content"android:layout_height="wrap_content"custom:textToggleCenter="XOR"custom:textToggleLeft="OR"custom:textToggleRight="AND"/>This can be accomplished only programmatically.
XML
<belka.us.androidtoggleswitch.widgets.ToggleSwitch
android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_gravity="center"/>JAVA code
ToggleSwitchtoggleSwitch = (ToggleSwitch) findViewById(R.id.multiple_switches);
ArrayList<String> labels = newArrayList<>();
labels.add("AND");
labels.add("OR");
labels.add("XOR");
labels.add("NOT");
labels.add("OFF");
toggleSwitch.setLabels(labels);NOTE: Providing a custom array of labels, the attributes textToggle[Left/Center/Right] will be ignored.
<belka.us.androidtoggleswitch.widgets.MultipleToggleSwitch
android:id="@+id/multiple_toggle_switch"android:layout_width="wrap_content"android:layout_height="wrap_content"custom:textToggleCenter="Center"custom:textToggleLeft="Left"custom:textToggleRight="Right"android:layout_gravity="center"custom:toggleWidth="82dp"/> NOTE: Please not that it's a different widget MultipleToggleSwitch instead of the previous ToggleSwitch.
int getCheckedTogglePosition()Returns the current checked position
intposition = toggleSwitch.getCheckedTogglePosition();void setCheckedTogglePosition(int position)Checks the position passed as argument
intposition = 3;
toggleSwitch.setCheckedTogglePosition(position);void setCheckedTogglePosition(int position)Checks the position passed as argument
intposition = 3;
multipleToggleSwitch.setCheckedTogglePosition(position);void setUncheckedTogglePosition(int position)Unchecks the position passed as argument
intposition = 0;
multipleToggleSwitch.setUncheckedTogglePosition(position);Set<Integer> getCheckedTogglePositions()Returns the set of the current checked positions
Set<Integer> checkedPositions = multipleToggleSwitch.getCheckedTogglePositions();toggleSwitch.setOnToggleSwitchChangeListener(newToggleSwitch.OnToggleSwitchChangeListener(){
@OverridepublicvoidonToggleSwitchChangeListener(intposition, booleanisChecked) {
// Write your code ...
}
});It is possible to customize the buttons applying the following options:
| Option Name | Format | Description |
|---|---|---|
| android:textSize | dimension | Text size of each button |
| custom:activeBgColor | color | Background color of the checked button |
| custom:activeTextColor | color | Text color of the checked button |
| custom:inactiveBgColor | color | Background color of the inactive buttons |
| custom:inactiveTextColor | color | Text color of the inactive buttons |
| custom:separatorColor | color | Color of the vertical separator between inactive buttons |
| custom:toggleWidth | dimension | Width of each button |
| custom:cornerRadius | dimension | Corner Radius in dp |
<belka.us.androidtoggleswitch.widgets.ToggleSwitch
android:layout_width="wrap_content"android:layout_height="wrap_content"android:textSize="18sp"custom:activeBgColor="@android:color/holo_blue_dark"custom:activeTextColor="@android:color/white"custom:inactiveBgColor="@android:color/white"custom:inactiveTextColor="@android:color/black"custom:separatorColor="@color/gray_very_light"custom:textToggleCenter="APPLE"custom:textToggleLeft="ORANGE"custom:textToggleRight="BANANA"custom:toggleWidth="104dp"/>Lorenzo Rigato, Fabrizio Rizzonelli, Android Developer @Belka
Android-Toggle-Switch is Copyright (c) 2016 Belka, srl. It is free software, and may be redistributed under the terms specified in the LICENSE file.
Belka is a Digital Agency specialized in design, mobile applications development and custom solutions. We love open source software! You can see our projects or look at our case studies.
Interested? Hire us to help build your next amazing project.




