main activity code:
package org.basic.basicbtn
import android.os.Bundle
import android.widget.Button
import android.widget.TextView
import androidx.appcompat.app.AppCompatActivity
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val text: TextView = findViewById(R.id.text_btnState)// 홀짝 텍스트 창
text.text= "시작"// 초기 텍스트
val countState: TextView = findViewById(R.id.text_btnCnt)// 버튼 누른 횟수 표시하는 창
countState.text= "클릭 횟수: 0"
val btn: Button=findViewById(R.id.btn)// 카운트 버튼
var clickCnt=0// 카운트 변수
btn.setOnClickListener {// 버튼이 눌렸을때
clickCnt++
countState.text ="클릭 횟수: " + clickCnt.toString()
if(clickCnt%2 == 1){// 홀짝 구분
text.text= "홀"
} else{
text.text= "짝"
}
}
val reset: Button=findViewById(R.id.btn_reset)// 리셋 버튼
reset.setOnClickListener {
clickCnt=0
countState.text ="클릭 횟수: " + clickCnt.toString()
text.text= "시작"
}
}
}
안드로이드에서는 id를 통해 버튼, 텍스트에 접근할 수 있다. 이때, id를 접근하기 위해서는 먼저, 변수를 선언해 val 변수명: 변수타입
형태로 선언을 한다. 이때, 변수타입은 text
, button
등 다양한 타입이 있는것으로 보인다.
다음으로, 변수를 선언했으면 findViewById()
라는 함수를 이용해 텍스트, 버튼 등의 고유id를 입력해 해당 버튼, 텍스트 등에 접근해서 제어할 수 있다.
버튼이 눌렸을때의 이벤트는 버튼.setOnClickListener
이벤트를 통해 버튼이 눌렸을 상황에 맞는 코드를 작성할 수 있다.
화면 code
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout 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:id="@+id/btn_cnt_reset"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<Button
android:id="@+id/btn"
android:layout_width="151dp"
android:layout_height="93dp"
android:text="버튼쨩"
android:textSize="20sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.492"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.377" />
<TextView
android:id="@+id/text_btnState"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="hello"
android:textSize="60sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.498"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.144" />
<TextView
android:id="@+id/text_btnCnt"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="TextView"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.498"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.554" />
<Button
android:id="@+id/btn_reset"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="숫자 초기화"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.498"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.677" />
</androidx.constraintlayout.widget.ConstraintLayout>
화면 그래픽: