728x90
한빛아카데미 Android Studio를 활용한 안드로이드 프로그래밍 6판
p.193 직접 풀어보기 4-4
[실습 4-2]를 다음과 같이 수정하라.
- '좋아하는 안드로이드 버전은?'으로 질문을 변경한다.
- '시작함'을 스위치로 변경한다
- <선택 완료>를 없애고, 라디오버튼을 선택할 때마다 즉시 해당 이미지가 나오도록 변경한다.
- 마지막에 <종료>와 <처음으로> 버튼을 추가한다. <종료>를 클릭하면 응용 프로그램이 완전히 종료되게 하고, <처음으로>를 클릭하면 다시 초기화되고 처음 화면이 나오게 한다.
코드
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="20dp">
<TextView
android:id="@+id/text1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="선택을 시작하시겠습니까?" />
<Switch
android:id="@+id/switch1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="시작함" />
<TextView
android:id="@+id/text2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="좋아하는 안드로이드 버전은?"
android:visibility="invisible"/>
<RadioGroup
android:id="@+id/group"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:visibility="invisible">
<RadioButton
android:id="@+id/radio1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="파이(9.0" />
<RadioButton
android:id="@+id/radio2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Q(10.0)" />
<RadioButton
android:id="@+id/radio3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="R(11.0)" />
</RadioGroup>
<ImageView
android:id="@+id/img"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:visibility="invisible"/>
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="종료"
android:visibility="invisible"/>
<Button
android:id="@+id/button2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="처음으로"
android:visibility="invisible"/>
</LinearLayout>
MainActivity.java
package com.cookandroid.test;
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 androidx.appcompat.app.AppCompatActivity;
public class MainActivity extends AppCompatActivity {
TextView text1, text2;
Switch switch1;
RadioGroup group;
RadioButton radio1, radio2, radio3;
Button button1, button2;
ImageView img;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
setTitle("안드로이드 사진 보기");
text1 = findViewById(R.id.text1);
switch1 = findViewById(R.id.switch1);
text2 = findViewById(R.id.text2);
group = findViewById(R.id.group);
radio1 = findViewById(R.id.radio1);
radio2 = findViewById(R.id.radio2);
radio3 = findViewById(R.id.radio3);
button1 = findViewById(R.id.button1);
button2 = findViewById(R.id.button2);
img = findViewById(R.id.img);
switch1.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton compoundButton, boolean b) {
if (switch1.isChecked() == true) {
text2.setVisibility(View.VISIBLE);
group.setVisibility(View.VISIBLE);
button1.setVisibility(View.VISIBLE);
button2.setVisibility(View.VISIBLE);
img.setVisibility(View.VISIBLE);
} else {
text2.setVisibility(View.INVISIBLE);
group.setVisibility(View.INVISIBLE);
button1.setVisibility(View.INVISIBLE);
button2.setVisibility(View.INVISIBLE);
img.setVisibility(View.INVISIBLE);
}
}
});
group.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup radioGroup, int i) {
switch (group.getCheckedRadioButtonId()) {
case R.id.radio1:
img.setImageResource(R.drawable.pie);
break;
case R.id.radio2:
img.setImageResource(R.drawable.q10);
break;
case R.id.radio3:
img.setImageResource(R.drawable.r11);
break;
}
}
});
button1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
finish();
}
});
button2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
switch1.setChecked(false);
radio1.setChecked(false);
radio2.setChecked(false);
radio3.setChecked(false);
img.setImageResource(0);
}
});
}
}
결과
728x90
'개발 > 책' 카테고리의 다른 글
[안드로이드 프로그래밍] 5장 직접 풀어보기 5-1 (0) | 2021.09.30 |
---|---|
[안드로이드 프로그래밍] 4장 직접 풀어보기 4-2 (2) | 2021.09.27 |
[안드로이드 프로그래밍] 2장 직접 풀어보기 2-3 (0) | 2021.09.27 |