- '시작함' 을 클릭하면 아래 동물 종류의 라디오버튼과 '선택완료' 버튼이 등장한다.
- 동물 라디오 버튼을 클릭하면 해당 동물 사진을 보여주도록 설계할 것이다.
<?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"
android:padding="10dp"
tools:context=".MainActivity">
<TextView
android:id="@+id/tv1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="시작하시겠습니까?"/>
<CheckBox
android:id="@+id/cb1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="시작함" />
<TextView
android:id="@+id/tv2"
android:visibility="invisible"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="좋아하는 동물은?" />
<RadioGroup
android:id="@+id/rg"
android:visibility="invisible"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<RadioButton
android:id="@+id/rb1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="강아지"/>
<RadioButton
android:id="@+id/rb2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="고양이"/>
<RadioButton
android:id="@+id/rb3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="토끼"/>
</RadioGroup>
<Button
android:id="@+id/btn1"
android:visibility="invisible"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="선택완료" />
<ImageView
android:id="@+id/iv1"
android:visibility="invisible"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
- 라디오버튼은 라디오그룹으로 묶어줌
- '시작하시겠습니까?' '시작' 체크박스 제외한 나머지 객체들의 visibility를 invisible로 두어서 숨김
- 각 객체들은 Id값을 부여하고 이벤트에 따른 메서드는 자바로 주겠다.
package com.example.ex4_28;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.provider.MediaStore;
import android.view.View;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.ImageView;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.TextView;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
CheckBox cb1 = findViewById(R.id.cb1);
TextView tv2 = findViewById(R.id.tv2);
RadioGroup rg = findViewById(R.id.rg);
RadioButton rb1 = findViewById(R.id.rb1);
RadioButton rb2 = findViewById(R.id.rb2);
RadioButton rb3 = findViewById(R.id.rb3);
Button btn1 = findViewById(R.id.btn1);
ImageView iv1 = findViewById(R.id.iv1);
cb1.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton compoundButton, boolean b) {
if(cb1.isChecked()){
tv2.setVisibility(View.VISIBLE);
rg.setVisibility(View.VISIBLE);
btn1.setVisibility(View.VISIBLE);
iv1.setVisibility(View.VISIBLE);
}else{
tv2.setVisibility(View.INVISIBLE);
rg.setVisibility(View.INVISIBLE);
btn1.setVisibility(View.INVISIBLE);
iv1.setVisibility(View.INVISIBLE);
}
}
});
btn1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
switch (rg.getCheckedRadioButtonId()){
case R.id.rb1:
iv1.setImageResource(R.drawable.dog);
break;
case R.id.rb2:
iv1.setImageResource(R.drawable.cat);
break;
case R.id.rb3:
iv1.setImageResource(R.drawable.rabbit);
break;
default:
Toast.makeText(getApplicationContext(),"라디오버튼 선택하시오",Toast.LENGTH_SHORT).show();
}
}
});
}
}
- '선택함' 체크박스 (cb1)가 선택되면 아래 항목 보여주는 메서드
· setOnCheckedChangeListner 사용
· 객체.setVisibility()로 체크여부에 따라 보여주기, 숨기기 가능
- '선택완료' 버튼 (btn1)이 선택되면 해당 라디오버튼에 맞는 동물 사진 보여주는 메서드
· setOnClickListner 사용
· switch문을 사용하여 각 동물종류에 맞는 사진 넣어줌 (setImageResource 사용)
· getCheckedRadioButtonId() : 체크된 라디오버튼의 Id값을 가져옴
- Toast 메시지 : 잠시 나타났다가 없어지는 메시지
· Toast.makeText(getApplicationContext(), "보여줄 메시지", 토스트메시지.길이).show()
'자바 웹 개발자가 될거야 > JAVA' 카테고리의 다른 글
[Android] 안드로이드 날짜, 시간 예약 설정 (0) | 2021.12.22 |
---|---|
[Android] 안드로이드 시간, 날짜 고급 위젯 (0) | 2021.12.22 |
[Android] 안드로이드 스튜디오로 계산기 만들기 (0) | 2021.12.20 |
[Android] EditText 텍스트 입력받기 (0) | 2021.12.16 |
[Android] 안드로이드스튜디오 AVD 한국어 키보드 설정하기 (0) | 2021.12.16 |