이번 시간에는 Databinding를 통해 레이아웃 컴포넌트에 쉽게 접근하는 방법을 코틀린으로 구현해보도록 하겠습니다.
build.gradle(Module:프로젝트명:app)
android 괄호 안에 아래 코드를 넣어주시면 됩니다.
buildFeatures{
viewBinding = true
}
- 설명 -
1. 첫 번째 버튼은 숫자를 +1씩 크게 합니다.
2. 두 번째 버튼은 숫자를 -1씩 작게 합니다.
3. 텍스트뷰는 숫자를 표시합니다.
4. 최상위 레이아웃의 태그는 layout으로 해야 합니다.
5. layout으로 해야 메인코드에서 ActivityMainBinding 타입 객체를 만들 수 있습니다.
<?xml version="1.0" encoding="utf-8"?>
<layout 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">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity">
<Button
android:id="@+id/plus_btn"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:text="더하기"
android:textSize="25sp"/>
<TextView
android:id="@+id/score_text"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="8"
android:gravity="center"
android:text="0"
android:textSize="150sp"/>
<Button
android:id="@+id/minus_btn"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:text="빼기"
android:textSize="25sp"/>
</LinearLayout>
</layout>
- 설명 -
1. dataBinding설정과 layout태그가 돼있어야 ActivityMainBinding을 사용할 수 있습니다.
2. binding = DataBindingUtil.setContentView(this, R.layout.activity_main);
binding를 초기화합니다. 메인화면으로 설정합니다.
3. 이제 binding변수를 통해 레이아웃에 있는 컴포넌트에 직접 접근이 가능해집니다.
4. 컴포넌트마다 findViewById()를 통해 아이디를 찾아서 변수를 만들 필요가 없습니다.
class MainActivity : AppCompatActivity() {
private lateinit var binding: ActivityMainBinding
var score: Int = 0
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
//binding 초기화
binding = DataBindingUtil.setContentView(this, R.layout.activity_main)
//마이너스 버튼
binding.minusBtn.setOnClickListener {
score--
binding.scoreText.text = score.toString()
}
//플러스 버튼
binding.plusBtn.setOnClickListener {
score++
binding.scoreText.text = score.toString()
}
}
}
2022.05.10 - [안드로이드] - [안드로이드] DataBinding 컴포넌트 쉽게 접근하는 방법
2022.05.19 - [안드로이드] - [안드로이드 코틀린] 변수 생성 및 변수 타입 만드는 방법
2022.05.20 - [안드로이드] - [안드로이드 코틀린] 배열 쉽게 만드는 방법
[안드로이드 코틀린] LiveData 만드는 방법 part1 - 실시간 데이터 변경 (0) | 2022.06.04 |
---|---|
[안드로이드 코틀린] ViewModel - 화면 회전 시 데이터 초기화 막는 방법 (0) | 2022.06.03 |
[안드로이드 코틀린] 간단한 RecyclerView 만드는 방법 part2 - adapter & MainActivity (0) | 2022.06.01 |
[안드로이드 코틀린] 간단한 RecyclerView 만드는 방법 part1 - 데이터 & 화면 (0) | 2022.05.31 |
[안드로이드 코틀린] 함수(function) 만드는 방법 part6 - 가변 인자(vararg) & 스프레드 연산자(spread operator) (0) | 2022.05.30 |
댓글 영역