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 |