02 데이터바인딩(1)

박진영·2022년 12월 30일
0

모던 안드로이드 아키텍처 (슬기로운코딩생활) 참고


기존 프로젝트

  • sample 객체를 뷰바인딩을 통해 가져온 뷰에 데이터를 setText()를 통해 세팅함
    → 데이터바인딩이라고함
  • 이 부분을 Activity코드에서 빼내어 layout내에 옮기는 과정을 할 예정!

데이터 바인딩 화면,뷰 분리

  • 데이터바인딩 활성화
    dataBinding { enabled true }
  • 레이아웃 내에 레이아웃 영역 외에 데이터 영역 만들기
  • 레이아웃 영역과 데이터 영역을 루트 레이아웃 영역으로 감싸고 layout 정보 저장
  • 데이터바인딩 대상 view에 아래와 같이 작성해서 처리
<layout xmlns:android="..."
        xmlns:app="..."
        xmlns:tools="...">
	<data>
      <!--데이터 바인딩 대상-->
      <variable
      	name="sample"
      	type="com.example.myapplication.Sample"/>
  </data>
  <LinearLayout
	android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">
    <!-- 각종 view -->
    <!-- 아래 예-->
    <TextView
              android:id="@+id=/sampleName"
              android:layout_width="wrap_content"
              android:layout_height="wrap_content"
              android:text="@{sample.sampleName}"/>
  </LinearLayout>
</layout>
  • Activity 코드에서 데이터 세팅 코드 부분 필요 없어짐

  • 대신 Sample 객체로 선언한 sample 변수를 binding에 세팅하면 됨
    binding.setSample(sample);

  • Activity에 순수 로직만 남아있어!!...

  • 데이터바인딩을 실제 프로젝트에 사용하다 보면, expression language로 다양한 형태의 로직을 가능하게 해줌


졸업 프로젝트 적용

졸프 적용

profile
오늘도 영차🐜

0개의 댓글