정보를 보호하는 대학생

<안드로이드 스터디 05> 체크박스 -> 라디오버튼 -> 버튼 -> 선택에 따른 이미지 보여주기 본문

개발/안드로이드 스터디

<안드로이드 스터디 05> 체크박스 -> 라디오버튼 -> 버튼 -> 선택에 따른 이미지 보여주기

정보를 보호하는 대학생 2022. 1. 14. 17:06

1. 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"
    tools:context=".MainActivity"
    android:orientation="vertical"
    android:padding="20dp"
    >

    <TextView
        android:id="@+id/Text1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="선택을 시작하시겠습니까?"
        android:textSize="20sp"
        />

    <CheckBox
        android:id="@+id/ChkAgree"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="시작함"/>

    <TextView
        android:id="@+id/Text2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="좋아하는 애완동물은?"
        android:textSize="20sp"
        android:visibility="invisible"/>

    <RadioGroup
        android:id="@+id/Rgroup1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:visibility="invisible" >
        <RadioButton
            android:id="@+id/RdoDog"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="강아지"/>

        <RadioButton
            android:id="@+id/RdoCat"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="고양이"
            />

        <RadioButton
            android:id="@+id/RdoRabbit"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="토끼"/>
</RadioGroup>

    <Button
        android:id="@+id/BtnOk"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="선택완료"
        android:visibility="invisible"/>

    <ImageView
        android:id="@+id/ImgPet"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:visibility="invisible"/>




</LinearLayout>

2. 코틀린 코드

package com.android.myapplication

import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.provider.MediaStore
import android.widget.*
import org.w3c.dom.Text
import java.sql.BatchUpdateException

class MainActivity : AppCompatActivity() {
//////////변수선언/////////////////
    lateinit var text1 : TextView
    lateinit var text2 : TextView
    lateinit var chkAgree : CheckBox
    lateinit var rGroup1 : RadioGroup
    lateinit var rdoDog : RadioButton
    lateinit var rdoCat : RadioButton
    lateinit var rdoRabbit : RadioButton
    lateinit var btnOk : Button
    lateinit var imgPet : ImageView


/////////////////////////////////

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        //////////////////변수 연결/////////////////////////
        title = "애완동물 사진 보기"

        text1 = findViewById(R.id.Text1)
        chkAgree = findViewById(R.id.ChkAgree)

        text2 = findViewById(R.id.Text2)
        rGroup1 = findViewById(R.id.Rgroup1)
        rdoDog = findViewById(R.id.RdoDog)
        rdoRabbit = findViewById(R.id.RdoRabbit)

        btnOk = findViewById(R.id.BtnOk)
        imgPet = findViewById(R.id.ImgPet)
        ////////////////////////////////////////////////////
        
        chkAgree.setOnCheckedChangeListener{buttonView, isChecked ->   //체크박스가 체크 되었는지 확인
            if(chkAgree.isChecked == true){  //체크박스가 체크 되었으면?
                text2.visibility = android.view.View.VISIBLE      //텍스트2, 라디오그룹, 버튼, 이미지 모두 보이게 설정
                rGroup1.visibility = android.view.View.VISIBLE
                btnOk.visibility = android.view.View.VISIBLE
                imgPet.visibility = android.view.View.VISIBLE
            }
            else {                                                //체크박스가 체크되지 않았으면 안보이게 설정

                text2.visibility = android.view.View.INVISIBLE
                rGroup1.visibility = android.view.View.INVISIBLE
                btnOk.visibility = android.view.View.INVISIBLE
                imgPet.visibility = android.view.View.INVISIBLE
            }

        }
        btnOk.setOnClickListener(){    
            when(rGroup1.checkedRadioButtonId){                      //버튼을 누르면 선택한 동물에 따라서 이미지 출력
                R.id.RdoDog -> imgPet.setImageResource(R.drawable.rabbit)
                R.id.RdoCat -> imgPet.setImageResource(R.drawable.rabbit)
                R.id.RdoRabbit -> imgPet.setImageResource(R.drawable.rabbit)
                else->Toast.makeText(applicationContext,"동물 먼저 선택하세요.", Toast.LENGTH_SHORT)
            }
        }


    }

}

 

3. 결과 화면