반응형
안드로이드 스튜디오에서 버튼을 생성하고, 해당 버튼을 클릭했을 때 글짜가 바뀌거나 특정 이벤트를 처리할 수 있도록 하는 방법에 대해 기록한다.
xml 디자인은 위와 같이 진행했다.
일단, 저 활성화 버튼을 누르면 버튼의 text가 비활성화가 되어야 하고, 다시 비활성화 버튼을 눌렀을 때에는 활성화가 text에 출력이 되어야 한다.
activity_main.xml
<?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/MasterLayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<LinearLayout
android:id="@+id/subLayout"
android:layout_width="410dp"
android:layout_height="732dp"
android:layout_marginTop="100dp"
android:orientation="vertical"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<TextView
android:id="@+id/delayText01"
android:layout_width="match_parent"
android:layout_height="50dp"
android:text="클릭 후 지연시간"
android:textColor="@color/black"
android:textSize="20sp" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="75dp"
android:orientation="horizontal">
<EditText
android:id="@+id/editTextNumber2"
android:layout_width="wrap_content"
android:layout_height="75dp"
android:ems="10"
android:inputType="number"
android:text="100" />
<TextView
android:id="@+id/textView3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="밀리초"
android:textColor="@color/black"
android:textSize="20sp"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"/>
</LinearLayout>
<Button
android:id="@+id/activeButton"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="활성화" />
</LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
MainActivity.kt
package com.example.srtautoclick
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.widget.Button
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
var activeButton = findViewById<Button>(R.id.activeButton)
activeButton.setOnClickListener {
if(activeButton.text.equals("활성화")) {
activeButton.text = "비활성화"
} else if(activeButton.text.equals("비활성화")) {
activeButton.text = "활성화"
}
}
}
}
위의 코드와 같이, onCreate 안에 해당 버튼 ID로 findViewById를 통해 해당 뷰를 가져올 수 있다.
해당 뷰를 가지고 와서, setOnClickListener를 통해 이벤트를 먹일 수 있다.
activeButton.text를 통해 해당 뷰의 text를 가져오고 정의도 할 수 있다.
반응형
최근댓글