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

[JAVA][Android]토글버튼(ToggleButton) 사용하기

by teamnova 2024. 9. 12.
728x90

안녕하세요!

오늘은 토글버튼 (ToggleButton) 사용을 해보겠습니다.

 

우선 전체 코드입니다.

 

MainActivity.java

package com.example.mytestapp1;

import android.content.Context;
import android.net.Uri;
import android.os.Bundle;
import android.util.Base64;
import android.view.View;
import android.widget.Button;
import android.widget.CompoundButton;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
import android.widget.ToggleButton;

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 java.io.BufferedReader;
import java.io.ByteArrayOutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;

public class MainActivity extends AppCompatActivity {

  private ToggleButton toggleButton;

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

    toggleButton = findViewById(R.id.toggleButton);

    toggleButton.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
      @Override
      public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
        if (isChecked) {
          Toast.makeText(MainActivity.this, "토글 ON", Toast.LENGTH_SHORT).show();
        } else {
          Toast.makeText(MainActivity.this, "토글 OFF", Toast.LENGTH_SHORT).show();
        }
      }
    });

  }
}

 

 

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:padding="16dp">

    <ToggleButton
        android:id="@+id/toggleButton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:layout_marginTop="200dp"
        android:background="@drawable/toggle_button_background"
        android:gravity="center"
        android:textOn="토글 ON"
        android:textOff="토글 OFF" />

</LinearLayout>

 

 

res/drawable/toggle_button_background.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_checked="true">
        <shape android:shape="rectangle">
            <solid android:color="#4CAF50" />
            <corners android:radius="8dp" />
        </shape>
    </item>
    <item android:state_checked="false">
        <shape android:shape="rectangle">
            <solid android:color="#F44336" />
            <corners android:radius="8dp" />
        </shape>
    </item>
</selector>

 

 

 

 

토글 버튼의 상태가 변경될 때마다 onCheckedChanged 메서드가 호출됩니다.

 

toggle_button_background.xml 파일을 커스텀하여 다양한 토글버튼 형태를 꾸밀 수 있습니다.

 

 

 

시연 영상입니다.