Code2care : TechZone Apps & Tutorials

How to make a Android button act as a toggle button







You can make a Button View behave like a ON/OFF toggle button. For this you need to have two image icons that represents an ON or a 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.


activity_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



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


Toggle Button ON State




Download the source code : Toggle Button Example









Top




Posts related to android.


1. Share image and text Twitter using your Android Application Programatically

2. The Android Virtual Device 'myEmulator' is currently running an emulator and cannot be deleted.

3. Make Android View Scrollable both Horizontally and Vertically

4. Can we move apps like WhatsApp, Facebook to external MicroSD card

5. Parsing Data for android-21 failed unsupported major.minor version 51.0

6. Android : Prevent App for rotation landscape or portrait

7. ADT quit unexpectedly error on Mac OSX Android Eclipse SDK

8. Android-Failed to install apk on device EOF Timeout Error

9. How to change Android EditText Cursor Color

10. JavaDocs for Android SDK Eclipse IDE

11. Two Buttons next to each other in Android Layout

12. Change Title text for Android Activity using java code

13. How to add Newline to text in Android TextView

14. Android : Unable to load VM from snapshot : Mac OS X Error

15. INVALID FILE NAME: MUST CONTAIN ONLY [a-z0-9_.] Android Eclipse Error

16. Hide Tittle bar and Navigation bar from android activity

17. appcompat_v7 errors after updates to API level 21 Material Theme

18. How to Copy Text to Android Clipboard Programatically ClipboardManager (Both Old and New SDK)

19. [Solution] Running Android Lint has encountered a problem NullPointerException Error

20. Remove Trailing zeros BigDecimal Java

    more...






Popular tags
android
x 175
eclipse
x 29
notepadplusplus
x 20
macosx
x 14
sharepoint
x 14
html
x 14
mac
x 13
androidstudio
x 11




1000+ C Programs     PHP Tutorial     JSON Tutorial     Swift Tutorial     India Pinocdes     About Us     Privacy Policy


Code2care © 2012-17