IT/Android

android - 라디오버튼 클릭시, 이미지뷰에 이미지 나오게 이벤트 처리 (TextView, Switch, RadioGroup, RadioButton, Button, ImageView, setOnCheckedChangeListener, setOnClickListener)

노마드오브 2018. 9. 6. 23:26

파일명 : 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:padding="20dp" >

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

<Switch
android:id="@+id/switchAgree"
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="20dp"
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/Rdo50"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="롤리팝" />

<RadioButton
android:id="@+id/Rdo60"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="마시멜로" />

<RadioButton
android:id="@+id/Rdo70"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="누가" />
</RadioGroup>

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

<Button
android:id="@+id/BtnInit"
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>


파일명 : MainActivity.java

package com.example.it.myapplication;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
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.Switch;
import android.widget.TextView;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {

TextView text1, text2;
Switch switchAgree;
RadioGroup rGroup1;
RadioButton Rdo50, Rdo60, Rdo70;
Button btnFinish, btnInit;
ImageView imgPet;

RadioButton rArray[] = new RadioButton[3];

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
setTitle("안드로이드 사진 보기");

// 위젯을 변수에 대입
text1 = (TextView) findViewById(R.id.Text1);
switchAgree = (Switch) findViewById(R.id.switchAgree);

text2 = (TextView) findViewById(R.id.Text2);
rGroup1 = (RadioGroup) findViewById(R.id.Rgroup1);

rArray[0] = (RadioButton) findViewById(R.id.Rdo50);
rArray[1] = (RadioButton) findViewById(R.id.Rdo60);
rArray[2] = (RadioButton) findViewById(R.id.Rdo70);

btnFinish = (Button) findViewById(R.id.BtnFinish);
btnInit = (Button) findViewById(R.id.BtnInit);
imgPet = (ImageView) findViewById(R.id.ImgPet);

final int draw[] = { R.drawable.api50, R.drawable.api60, R.drawable.api70};

        
// 라디오버튼 클릭시, 이벤트 처리
for (int i=0; i<draw.length; i++) {
final int index = i;
rArray[index].setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
imgPet.setImageResource(draw[index]);
}
});
}

// 체크박스의 체크가 변경되면
switchAgree.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
public void onCheckedChanged(CompoundButton arg0, boolean arg1) {
// 체크되면 모두 보이도록 설정
if (switchAgree.isChecked() == true) {
text2.setVisibility(android.view.View.VISIBLE);
rGroup1.setVisibility(android.view.View.VISIBLE);
btnFinish.setVisibility(android.view.View.VISIBLE);
btnInit.setVisibility(android.view.View.VISIBLE);
imgPet.setVisibility(android.view.View.VISIBLE);
} else {
text2.setVisibility(android.view.View.INVISIBLE);
rGroup1.setVisibility(android.view.View.INVISIBLE);
btnFinish.setVisibility(android.view.View.INVISIBLE);
btnInit.setVisibility(android.view.View.INVISIBLE);
imgPet.setVisibility(android.view.View.INVISIBLE);
}
}
});

// 처음부터 다시 버튼을 클릭하면,
btnInit.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
text2.setVisibility(android.view.View.INVISIBLE);
rGroup1.setVisibility(android.view.View.INVISIBLE);
btnFinish.setVisibility(android.view.View.INVISIBLE);
btnInit.setVisibility(android.view.View.INVISIBLE);
imgPet.setVisibility(android.view.View.INVISIBLE);

// 라디오 그룹 초기화
rGroup1.clearCheck();

// 스위치를 off로
switchAgree.setChecked(false);
}
});

}
}


실행화면