본문 바로가기
Adroid Studio

Android Studio_안드로이드 스튜디오 앱 만들기4_위젯 활용예제

by 디디찐 2022. 8. 22.
반응형

실행결과

TextView 2개 ,SwitchView, RadioGroup, RadioButton 3개, Image View, Button2개로 위젯 구성하였다.

SwitchView 체크 시 위젯이 보이도록 한다.

(초기화면 RadioGroup, RadioButton 3개, Image View, Button2개 => visibility = "invisible")

RadioGroup선택 시 RadioButton 별 해당 이미지를 띄운다.

 

 

◼안드로이드 스튜디오  activity_main.xml


<?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:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:layout_margin="10dp"
    tools:context=".MainActivity"
    android:gravity="center_horizontal">

    <TextView
        android:id = "@+id/Text1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="10dp"
        android:text="선택을 시작하겠습니까?" />

    <Switch
        android:id = "@+id/switchBtn"
        android:layout_width = "wrap_content"
        android:layout_height = "wrap_content"
        android:layout_marginTop="10dp"
        android:text = "시작함"
        android:layout_gravity="left"
        ></Switch>
    <TextView
        android:id = "@+id/Text2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="10dp"
        android:text="좋아하는 안드로이드 버전은?"
        android:visibility = "invisible" />

    <RadioGroup
        android:id="@+id/radioGroup"
        android:layout_width = "match_parent"
        android:layout_height = "wrap_content"
        android:visibility = "invisible"
        >
        <RadioButton
            android:id="@+id/radiobtn1"
            android:text="Q(10.0)"
            ></RadioButton>
        <RadioButton
            android:id="@+id/radiobtn2"
            android:text="R(11.0)"
            ></RadioButton>
        <RadioButton
            android:id="@+id/radiobtn3"
            android:text="S(12.0)"
            ></RadioButton>
    </RadioGroup>

    <ImageView
        android:id="@+id/Img"
        android:layout_width = "180dp"
        android:layout_height = "180dp"
        android:scaleType = "fitCenter"
        android:visibility = "invisible"
        ></ImageView>

    <Button
        android:id="@+id/btn1Exit"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="left"
        android:text="종료"
        android:visibility="invisible"></Button>

    <Button
        android:id="@+id/btnReload"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="left"
        android:layout_marginTop="10dp"
        android:text="처음으로"
        android:visibility="invisible"></Button>

</LinearLayout>

 

◼안드로이드 스튜디오  MainActivity.java


package com.androidpark.project4_2;

import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.CompoundButton;
import android.widget.ImageView;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.Switch;
import android.widget.TextView;
import android.widget.Toast;

import androidx.appcompat.app.AppCompatActivity;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        setTitle("안드로이드 사진 보기");
        
        TextView text1,text2;
        Switch switchBtn;
        RadioGroup radioGroup;
        RadioButton radiobtn1, radiobtn2;
        Button btn1Exit,btnReload;
        ImageView img;

        text1 = (TextView) findViewById(R.id.Text1);
        text2 = (TextView) findViewById(R.id.Text2);
        switchBtn = (Switch) findViewById(R.id.switchBtn);

        radioGroup = (RadioGroup) findViewById(R.id.radioGroup);
        radiobtn1 = (RadioButton) findViewById(R.id.radiobtn1);
        radiobtn2 = (RadioButton) findViewById(R.id.radiobtn2);

        btn1Exit = (Button) findViewById(R.id.btn1Exit);
        btnReload = (Button) findViewById(R.id.btnReload);
        img = (ImageView) findViewById(R.id.Img);

        switchBtn.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                if(switchBtn.isChecked() == true){
                    text2.setVisibility(android.view.View.VISIBLE);
                    radioGroup.setVisibility(android.view.View.VISIBLE);
                    btn1Exit.setVisibility(android.view.View.VISIBLE);
                    btnReload.setVisibility(android.view.View.VISIBLE);
                    img.setVisibility(android.view.View.VISIBLE);
                }else{
                    text2.setVisibility(android.view.View.INVISIBLE);
                    radioGroup.setVisibility(android.view.View.INVISIBLE);
                    btn1Exit.setVisibility(android.view.View.INVISIBLE);
                    btnReload.setVisibility(android.view.View.INVISIBLE);
                    img.setVisibility(android.view.View.INVISIBLE);
                }
            }
        });
        radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(RadioGroup radioGroup, int i) {
                switch (radioGroup.getCheckedRadioButtonId()){
                    case R.id.radiobtn1:
                        img.setImageResource(R.drawable.q);
                        break;
                    case R.id.radiobtn2:
                        img.setImageResource(R.drawable.r);
                        break;
                    case R.id.radiobtn3:
                        img.setImageResource(R.drawable.s);
                        break;
                }
            }
        });
        btn1Exit.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                finish();
            }
        });
        btnReload.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                switchBtn.setChecked(false);
                
            }
        });


    }
}

 

✅Button 위젯의 Java 코드 3단계

1)버튼 변수 선언

Button mybutton;

2)변수에 버튼 위젯 대입

mybutton = (Button)findViewById(R.Id.지정ID);

3)버튼을 클릭할 때 동작하는 클래스 정의

mybutton.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
      //동작 내용 코딩
    }
});

 

✅Switch 위젯의 Java 코드 3단계

1)스위치 변수 선언

Switch switchBtn;

2)변수에 스위치 위젯 대입

 switchBtn = (Switch) findViewById(R.id.switchBtn);

3)스위치를 클릭할 때 동작하는 클래스 정의

 

switchBtn.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
            }
 });

컴파운드버튼(CompoundButton)의 하위 클래스는 체크박스, 라디오버튼, 스위치, 토글버튼이다.


◼실행결과

초기화면 / Switch 버튼 체크시

 

반응형