
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:text="선택을 시작하겠습니까?"
android:layout_height="wrap_content"
android:layout_width="match_parent" />
<Switch
android:id="@+id/ChkAgree"
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/Rgroup1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:visibility="invisible">
<RadioButton
android:id="@+id/RdoOreo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="오레오(8.0)"/>
<RadioButton
android:id="@+id/RdoPie"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="파이(9.0)"/>
<RadioButton
android:id="@+id/RdoQ"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Q(10.0)"/>
</RadioGroup>
<ImageView
android:id="@+id/ImgPet"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:visibility="invisible"/>
<Button
android:id="@+id/btn1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:visibility="invisible"
android:text="종료"/>
<Button
android:id="@+id/btn2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:visibility="invisible"
android:text="처음으로"/>
</LinearLayout>
1단계 코틀린 객체 만들기
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
//1.코틀린 객체 만들기
var text1 : TextView
var text2 : TextView
var ChkAgree : Switch
var rGroup1 : RadioGroup
var rdoOreo : RadioButton
var rdoPie : RadioButton
var rdoQ : RadioButton
var imgPet : ImageView
var btn1 : Button
var btn2 : Button
2단계 xml객체를 코틀린 객체에 연결(바인딩)
text1 = findViewById<TextView>(R.id.Text1)
ChkAgree = findViewById<Switch>(R.id.ChkAgree)
text2 = findViewById<TextView>(R.id.Text2)
rGroup1 = findViewById<RadioGroup>(R.id.Rgroup1)
rdoOreo = findViewById<RadioButton>(R.id.RdoOreo)
rdoPie = findViewById<RadioButton>(R.id.RdoPie)
rdoQ = findViewById<RadioButton>(R.id.RdoQ)
imgPet = findViewById<ImageView>(R.id.ImgPet)
btn1 = findViewById(R.id.btn1)
btn2 = findViewById(R.id.btn2)
3단계 작업 ->이벤트 처리
3.1단계 Switch 누르면 이벤트 일어남
//isCecked는 Boolean이기 때문에 isCecked = true 임
ChkAgree.setOnCheckedChangeListener{ buttonView, isChecked ->
if(isChecked){// checked 상태이면
text2.visibility = android.view.View.VISIBLE
rGroup1.visibility = android.view.View.VISIBLE
imgPet.visibility = android.view.View.VISIBLE
btn1.visibility = android.view.View.VISIBLE
btn2.visibility = android.view.View.VISIBLE
}
else{//checked가 해지된 상태이면
text2.visibility = android.view.View.INVISIBLE
rGroup1.visibility = android.view.View.INVISIBLE
imgPet.visibility = android.view.View.INVISIBLE
btn1.visibility = android.view.View.INVISIBLE
btn2.visibility = android.view.View.INVISIBLE
}
}
3.2단계 라디오 버튼 눌렀을때 이벤트 일어남
첫번째 방식
rGroup1.setOnCheckedChangeListener { group, checkedId ->
when(rGroup1.checkedRadioButtonId){
R.id.RdoOreo ->imgPet.setImageResource(R.drawable.oreo)
R.id.RdoPie ->imgPet.setImageResource(R.drawable.pie)
R.id.RdoQ ->imgPet.setImageResource(R.drawable.q10)
}
}
두번째 방식
rdoOreo.setOnClickListener {
imgPet.setImageResource(R.drawable.oreo)
}
rdoPie.setOnClickListener {
imgPet.setImageResource(R.drawable.pie)
}
rdoQ.setOnClickListener {
imgPet.setImageResource(R.drawable.q10)
}
3.3단계 종류 클릭시 응용프로그램 종료
btn1.setOnClickListener{
finish()
}
3.4단계 처음으로 클릭시 초기화
btn2.setOnClickListener {
ChkAgree.isChecked = false
rGroup1.clearCheck()
imgPet.setImageResource(0)
}