ViewBinding
설명은 생략하고 사용 방법에 대해 알아보자.
안드로이드 개발자 공식 문서를 바탕으로 씀
https://developer.android.com/topic/libraries/view-binding?hl=ko#java
1. build.gradle
android {
...
viewBinding {
enabled = true
}
}
작성하고 Sync now를 누른다.
** viewBinding 되는것을 무시하려면 tools:viewBindingIgnore="true" 속성을 레이아웃 파일의 루트 뷰에 추가
2. 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:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<TextView
android:id="@+id/hello_textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello World!"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
viewBinding을 사용하기 위해 TextView에 'hello_textView'라는 id를 넣어준다.
3. MainActivity.java
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import com.taek.test.databinding.ActivityMainBinding;
public class MainActivity extends AppCompatActivity {
private ActivityMainBinding binding;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
binding = ActivityMainBinding.inflate(getLayoutInflater());
View view = binding.getRoot();
setContentView(view);
}
}
setContentView 부분을 더 간략하게 줄인다면
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
binding = ActivityMainBinding.inflate(getLayoutInflater());
setContentView(binding.getRoot());
}
View 객체를 생성하지 않고 바로 setContentView의 매개변수에 binding.getRoot()를 넣어준다.
'앱 개발 > 안드로이드(Java)' 카테고리의 다른 글
RecyclerView 구현 (0) | 2023.03.10 |
---|---|
ListView 구현 (0) | 2023.03.10 |
GPS Background service 구현하기 (1) | 2021.10.27 |
glide를 사용하여 GIF 로딩 화면 구현하기 (4) | 2021.08.17 |
이미지 회전 로딩 화면 구현 (0) | 2021.08.17 |