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
- Android Error Unexpected cast to Button: layout tag was FrameLayout
- ADT quit unexpectedly error on Mac OSX Android Eclipse SDK
- Parsing Data for android-21 failed unsupported major.minor version 51.0
- Android Studio Ctrl Shift o auto import not working
- java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity.
- Android : How to make TextView Scrollable
- This class should be public (android.support.v7.internal.widget.ActionBarView.HomeView) Lint Error
- Integrating Android Facebook SDK 3.17.2 Tutorial
- Android R Cannot Be Resolved To A Variable
- Android : Exception raised during rendering: action_bar API 22
- How to take screenshot on Android
- Read Text file from SD Card : Android Programming
- How to make Android EditText not editable
- Your Android SDK is out of date or is missing templates. Please ensure you are using SDK version 22 or later.
- The declared package does not match the expected package Eclipse
- Can't Run SDK Manager find_java.bat issue
- What is Android Toast.LENGTH_SHORT and Toast. LENGTH_LONG durations
- Android Emulator Soft Back button action using Computer keyboard
- Multiline EditText in Android Example
- Use 5G Network on Android Emulator
- Make Android TextView Clickable like Buttons
- How to empty trash in Android Device
- Android : Execute some code after back button is pressed
- Disable Fading Edges Scroll Effect Android Views
- How To Disable Landscape Mode in Android Application
- Add HTML to Android Activity or TextView - Android
- Exception in thread main java.nio.file.NoSuchFileException - Java
- Java + Spring JDBC Template + Gradle Example - Java
- 12 August - International Youth Day celebrated worldwide - News
- How to make div or text in html unselectable using CSS - CSS
- Copy file from a remote server to current local directory system using SCP command - HowTos
- Save webpage as pdf in Google Chrome for Mac OS X - Mac-OS-X
- Maven : java.lang.ClassNotFoundException: Xmx512m - Android