[Android] ToggleButton

728x90
주요 속성

- textOn : On상태일 때 표시할 문자열

- textOff : Off 상태일 때 표시할 문자열

- checked : 초기 상태 설정. true면 on 상태임

 

주요 메서드

- isChecked : on/off 상태 여부 값을 반환. on 이면 true , off면 false

- setCheked : on/off 상태를 설정. true = on / false = off

- toggle : 현재의 토글 상태를 반전

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/main"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".MainActivity" >

    <TextView
        android:id="@+id/textView"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="TextView"
        android:textAppearance="@style/TextAppearance.AppCompat.Large" />

    <TextView
        android:id="@+id/textView2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="TextView"
        android:textAppearance="@style/TextAppearance.AppCompat.Large" />

    <Space
        android:layout_width="match_parent"
        android:layout_height="20dp" />

    <ToggleButton
        android:id="@+id/toggleButton"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:checked="false"
        android:text="ToggleButton"
        android:textOff="off상태"
        android:textOn="on 상태" />

    <ToggleButton
        android:id="@+id/toggleButton2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="ToggleButton" />

    <Space
        android:layout_width="match_parent"
        android:layout_height="20dp" />

    <Button
        android:id="@+id/button"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="on/off상태 확인하기" />
</LinearLayout>

 

package kr.co.togglebutton;

import android.os.Bundle;
import android.view.View;

import androidx.activity.EdgeToEdge;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.graphics.Insets;
import androidx.core.view.ViewCompat;
import androidx.core.view.WindowInsetsCompat;

import kr.co.togglebutton.databinding.ActivityMainBinding;

public class MainActivity extends AppCompatActivity {

    ActivityMainBinding activityMainBinding;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        activityMainBinding = ActivityMainBinding.inflate(getLayoutInflater());
        setContentView(activityMainBinding.getRoot());

        ButtonClickListener1 buttonClickListener1 = new ButtonClickListener1();
        activityMainBinding.button.setOnClickListener(buttonClickListener1);
    }

    class ButtonClickListener1 implements View.OnClickListener{
        @Override
        public void onClick(View v) {
            boolean a1 = activityMainBinding.toggleButton.isChecked();
            if(a1==true){
                activityMainBinding.textView.setText("on 상태 입니다");
            } else {
                activityMainBinding.textView.setText("off 상태 입니다.");
            }
        }
    }
}

 

package kr.co.togglebutton;

import android.os.Bundle;
import android.view.View;

import androidx.activity.EdgeToEdge;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.graphics.Insets;
import androidx.core.view.ViewCompat;
import androidx.core.view.WindowInsetsCompat;

import kr.co.togglebutton.databinding.ActivityMainBinding;

public class MainActivity extends AppCompatActivity {

    ActivityMainBinding activityMainBinding;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        activityMainBinding = ActivityMainBinding.inflate(getLayoutInflater());
        setContentView(activityMainBinding.getRoot());

        ButtonClickListener1 buttonClickListener1 = new ButtonClickListener1();
        activityMainBinding.button.setOnClickListener(buttonClickListener1);

        ButtonClickListener2 buttonClickListener2 = new ButtonClickListener2();
        activityMainBinding.button2.setOnClickListener(buttonClickListener2);

        ButtonClickListener3 buttonClickListener3 = new ButtonClickListener3();
        activityMainBinding.button3.setOnClickListener(buttonClickListener3);
    }

    ...
    
    class ButtonClickListener2 implements View.OnClickListener {
        @Override
        public void onClick(View v) {
            activityMainBinding.toggleButton.setChecked(true);
            activityMainBinding.toggleButton2.setChecked(true);
        }
    }

    class ButtonClickListener3 implements View.OnClickListener {
        @Override
        public void onClick(View v) {
            activityMainBinding.toggleButton.setChecked(false);
            activityMainBinding.toggleButton2.setChecked(false);
        }
    }
}

 

package kr.co.togglebutton;

import android.os.Bundle;
import android.view.View;

import androidx.activity.EdgeToEdge;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.graphics.Insets;
import androidx.core.view.ViewCompat;
import androidx.core.view.WindowInsetsCompat;

import kr.co.togglebutton.databinding.ActivityMainBinding;

public class MainActivity extends AppCompatActivity {

    ActivityMainBinding activityMainBinding;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        activityMainBinding = ActivityMainBinding.inflate(getLayoutInflater());
        setContentView(activityMainBinding.getRoot());

       ...
        ButtonClickListener4 buttonClickListener4 = new ButtonClickListener4();
        activityMainBinding.button4.setOnClickListener(buttonClickListener4);
    }

    ...
    class ButtonClickListener4 implements View.OnClickListener {
        @Override
        public void onClick(View v) {
            activityMainBinding.toggleButton.toggle();
        }
    }
}

 

`

 

주요 이벤트

- Click : toggle 버튼을 클릭하면 발생하는 이벤트

- checked change : on/off 상태가 변경하면 발생하는 이벤트 

 

package kr.co.togglebutton;

import android.os.Bundle;
import android.view.View;

import androidx.activity.EdgeToEdge;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.graphics.Insets;
import androidx.core.view.ViewCompat;
import androidx.core.view.WindowInsetsCompat;

import kr.co.togglebutton.databinding.ActivityMainBinding;

public class MainActivity extends AppCompatActivity {

    ActivityMainBinding activityMainBinding;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        activityMainBinding = ActivityMainBinding.inflate(getLayoutInflater());
        setContentView(activityMainBinding.getRoot());

       ...
        ToggleButtonClickListener toggleButtonClickListener = new ToggleButtonClickListener();
        activityMainBinding.toggleButton.setOnClickListener(toggleButtonClickListener);

    }

    ...
    //토글 버튼 클릭 이벤트
    class ToggleButtonClickListener implements View.OnClickListener{
        @Override
        public void onClick(View v) {
            //토글 버튼의 상태를 가져온다.
            boolean a1 = activityMainBinding.toggleButton.isChecked();
            if(a1==true){
                activityMainBinding.textView.setText("toggle click : on");
            }else {
                activityMainBinding.textView.setText("toggle click : off");
            }
        }
    }
}

 

 

package kr.co.togglebutton;

import android.os.Bundle;
import android.view.View;
import android.widget.CompoundButton;

import androidx.activity.EdgeToEdge;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.graphics.Insets;
import androidx.core.view.ViewCompat;
import androidx.core.view.WindowInsetsCompat;

import kr.co.togglebutton.databinding.ActivityMainBinding;

public class MainActivity extends AppCompatActivity {

    ActivityMainBinding activityMainBinding;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        activityMainBinding = ActivityMainBinding.inflate(getLayoutInflater());
        setContentView(activityMainBinding.getRoot());

     ...
        ToggleCheckedChangeListener1 toggleCheckedChangeListener1 = new ToggleCheckedChangeListener1();
        activityMainBinding.toggleButton2.setOnCheckedChangeListener(toggleCheckedChangeListener1);
    }

  ...

    //토글 버튼의 상태가 변경 되었을 때
    class ToggleCheckedChangeListener1 implements CompoundButton.OnCheckedChangeListener{
        @Override
        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
            if(isChecked==true){
                activityMainBinding.textView2.setText("change on ");
            }else {
                activityMainBinding.textView2.setText("CHANGE off");
            }
        }

    }
}

- checkedchangelistener를 더 자주 사용함

 

728x90

'안드로이드 스튜디오' 카테고리의 다른 글

[Android] ListView  (0) 2026.03.02
[Android] 라이브러리 버전 수정 방법  (0) 2026.02.25
[Android] ImageView  (1) 2026.02.02
[Android] TextInputLayout  (0) 2025.12.19
[Android] EditText  (0) 2025.11.18