You can make a Button View behave like an ON/OFF toggle button. For this you need to have two image icons that represent an ON or an OFF state.
To demonstrate, I have downloaded two buttons: Switch ON and Switch OFF for icon8.com and placed them under drawable folder.
Set the Background of the Button as the Button icon OFF state using attribute android:background = "@drawable/button_off"
In Java code we will create a flag variable and in onClickListener set on the Button we will toggle the states as button.setBackgroundResource(R.drawable.switch_on) and button.setBackgroundResource(R.drawable.switch_off) to change its background.
javaactivity_toggle_button_ex.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.code2care.android.togglebuttonexample.ToggleButtonEx" >
<Button
android:id="@+id/toggleButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_marginTop="38dp"
android:background="@drawable/switch_off" />
<TextView
android:id="@+id/buttonState"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/toggleButton"
android:layout_centerHorizontal="true" />
</RelativeLayout>
ToggleButtonEx.java
|CBS||package com.code2care.android.togglebuttonexample; import android.os.Bundle; import android.support.v7.app.ActionBarActivity; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.TextView; public class ToggleButtonEx extends ActionBarActivity { private Button button; private TextView buttonState; private int flag = 0; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_toggle_button_ex); button = (Button) findViewById(R.id.toggleButton); buttonState = (TextView) findViewById(R.id.buttonState); button.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { if (flag == 0) { flag = 1; // 1 => Button ON button.setBackgroundResource(R.drawable.switch_on); buttonState.setText("State : ON"); } else { flag = 0; // 0 => Button OFF button.setBackgroundResource(R.drawable.switch_off); buttonState.setText("State : OFF"); } } }); } } Output
Toggle Button OFF State.png
More Posts related to Android,
- Check Internet Connection WIFI 4G is active on Android Programmatically
- Android Emulator cannot be opened because the developer cannot be verified. [M1 Mac]
- How to Change Android Toast Position?
- Fail to connect to camera service Android java RuntimeException
- How to create Custom RatingBar Android Programming Tutorial
- Fixing Android unknown error 961 while downloading app
- Android AlertDialog with Yes No and Cancel Button
- Share or Send SMS via Android Intent
- The Android Virtual Device myEmulator is currently running an emulator and cannot be deleted.
- Pass data between two Android Activities and access it using Intent
- SQLite with Android Easy to Understand Tutorial that covers Select, Insert, Update and Delete
- [FIX] AndroidRuntime: FATAL EXCEPTION: main - java.lang.RuntimeException NullPointerException
- Android EditText Cursor Colour appears to be white
- Android Development - How to switch between two Activities
- Android xml error Attribute is missing the Android namespace prefix [Solution]
- Android : Remove ListView Separator/divider programmatically or using xml property
- Android is starting optimizing... app 1 of 1
- java.lang.NoClassDefFoundError android.support.v4.content.LocalBroadcastManager
- AlertDialog with single button example : Android
- Android : Exception raised during rendering: action_bar API 22
- Maven : java.lang.ClassNotFoundException: Xmx512m
- Android Lint app_name is not translated in af (Afrikaans) am (Amharic) ar (Arabic) bg (Bulgarian)
- Center align text in TextView Android Programming
- How to Download and Install Android adb Tool on Linux, Mac or Windows
- Multiline EditText in Android Example
More Posts:
- How to change the KeyMap in Android Studio - Android-Studio
- How to delete a file using PowerShell [Windows/macOS] - Powershell
- M1/M2 Mac VirtualBox Unsupported hardware architecture detected! - MacOS
- [Docker M1/M2 Mac] qemu-x86_64: Could not open /lib64/ld-linux-x86-64.so.2: No such file or directory AWS CLI - Docker
- wget Command on macOS Terminal - MacOS
- Android Parsing Data for android-L failed Unsupported major.minor version 51.0 Error - Android
- [Fix] java: integer number too large compilation error - Java
- Setting up Java JUnit Project with Eclipse + Maven Example - Java