안드로이드 데이터(View / ViewGroup)를 변수에 바인딩 하는 방법 - 심화!!
-
우선 Gradle 설정부터
App 디렉터리 밑 Gradle에 다음과 같이 dataBinding을 사용하기 위한 준비를 한다.
android {
dataBinding {
enabled = true
}
}
-
XML의 최상위를 layout 태그로 감싸준다.
아래는 테스트로 작성한 XML 입니다.
<layout
xmlns:android="http://schemas.android.com/apk/res/android">
<LinearLayout
android:id="@+id/linear_layout"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/text_view"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
</LinearLayout>
</layout>
-
알아서 Binding 해주는 객체를 받아 사용한다.
아래는 테스트로 작성한 Activity 코드 중 onCreate 부분입니다.
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
ActivityBindingTextBinding binding = DataBindingUtil.setContentView(this, R.layout.activity_binding_test);
binding.textView.setText("텍스트뷰");
}
이때 알아서 Binding 되는 객체의 클래스 명은 작성한 xml 이름과 같다. ※ 중간에 _ 기호가 들어가 있으면 다음 알파벳은 대문자가 된다 [파스칼 표기법]
아래 FindViewById를 사용하여 데이터 바인딩을 사용했을 때보다 훨씬 코드가 간결한 볼 수 있다.
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_binding_test);
LinearLayout linearLayout = (LinearLayout) findViewById(R.id.linear_layout);
TextView textView = (TextView) findViewById(R.id.text_view);
textView.setText("텍스트뷰");
}