본문 바로가기
안드로이드 자바

[Java][Android] 토글 버튼(ToggleButton) 사용법

by teamnova 2021. 4. 26.
728x90

ToggleButton이란? 

토글버튼을 사용하면 사용자가 두 상태(예: on, off)간 설정을 변경할 수 있습니다.

ToggleButton 예

 

- 공식문서

https://developer.android.com/reference/android/widget/ToggleButton#summary

 

ToggleButton  |  Android 개발자  |  Android Developers

 

developer.android.com

 

사용법

<activity_main.xml>

스틱코드를 활용하고 있다면, 토글버튼 빠르게 생성하는 코드를 즐겨찾기 합니다.

xml에서 to까지 입력하면, toggle button을 클릭해주면 toggle button의 xml 코드가 자동완성됩니다.

여기에서 보이는 textOff, textOn 속성은 토글버튼이 눌렸을때,

On, Off 상태에 따라 버튼위에 띄워질 텍스트를 설정하는 속성입니다.

예제에서는 textOff에 비활성화, textOn에는 활성화라고 하겠습니다.

그리고, 상황에 따라 필요한 속성을 추가해줍니다.

 

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
    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:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity"
    android:orientation="vertical">

    <ToggleButton
        android:id="@+id/toggleButton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="100dp"
        android:checked="true"
        android:textOff="비활성화"
        android:textOn="활성화"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

</androidx.constraintlayout.widget.ConstraintLayout>

 

<MainActivity.xml>

메인 액티비티에서는 토글버튼의 상태에 따라 토스트를 띄워주는 코드를 작성해보겠습니다.

먼저, tog까지 입력하면, toggle button listener 가 목록에 뜨는데,

toggle button listener를 클릭하면 코드 내용이 자동완성 됩니다.

 

이제 if문과 else 문에 필요에 따라 코드를 추가해줍니다.

if 문에는 isChecked가 true인 경우, 즉 toggle button이 On 상태일 때 실행되는 코드입니다.

이번 예제에서는 활성화가 되었다는 Toast가 뜨도록 하겠습니다. 

스틱코드를 활용하고 있다면, toas까지만 입력해도 간편하게 토스트 코드가 완성됩니다.

if 문과 else 사이에 원하는대로 toast 코드를 추가해줍니다.

 

완성된 코드입니다.

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        ToggleButton toggleButton = (ToggleButton) findViewById(R.id.toggleButton);
        toggleButton.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                if (isChecked) {
                    Toast.makeText(getApplicationContext(), "활성화 완료!",Toast.LENGTH_SHORT).show();
                } else {
                    Toast.makeText(getApplicationContext(), "비활성화되었습니다",Toast.LENGTH_SHORT).show();
                }
            }
        });
    }
}

 

 

<실행화면>

실행화면

 

활성화 상태에서 토글버튼을 누르면 비활성화상태로 바뀌면서 

토글버튼위의 텍스트도 비활성화로 바뀌고, 

리스너에 있는 비활성화되었다는 토스트 메시지도 나오는 것을 알 수 있습니다.

 

On, Off 상태가 필요한 부분에 이 버튼을 활용해보면 좋을 것 같습니다.

 

 

[활용 스틱코드]

ToggleButton > stickode.com/detail.html?no=2063