[Android] Data Binding 에서 빈 문자열 확인하는 법

Joy·2022년 10월 26일
0
post-thumbnail

Data Binding 라이브러리를 사용할 경우 할당 표현식인 @{} 구문을 사용하여 위젯에 직접 값을 넣을 수 있습니다.

그 중에서 View 안에서 빈 문자열("" or null) 인지 조건을 확인 해야할 경우가 있습니다.

먼저 아래와 같이 data 요소 내에 variable와 import를 사용하여 필요한 클래스를 참조합니다.

<data>
   <import type="android.text.TextUtils"/>
  <import type="android.view.View"/>
  <variable
      name="viewModel"
      type="com.example.sampleApp.presentation.viewmodel.MainViewModel" />
</data>

다음은 TextView 위젯 안에 visibility 속성에 빈 문자열 확인하는 조건을 추가 하고, Visible 세팅을 한 경우 입니다.

<TextView
...
 android:visibility="@{TextUtils.isEmpty(viewModel.uesrName) ? View.GONE : View.VISIBLE, default = gone}"
 android:text="@{viewModel.uesrName}"
...
/>

추가로 null 체크만 필요한 경우는 TextUtils을 사용하지 않아도 아래와 같이 사용 할 수 있습니다.

<TextView
...
 android:visibility="@{viewModel.uesrName == null ? View.GONE : View.VISIBLE, default = gone}"
 android:text="@{viewModel.uesrName}"
...
/>

그밖에 null 병합 연산자를 확인하여 이름을 세팅해주는 방법도 있습니다.

<TextView
...
android:text="@{viewModel.displayName ?? viewModel.uesrName}"
...
/>

이 연산은 기능적으로 아래와 동일 합니다.

<TextView
...
android:text="@{viewModel.displayName != null ? viewModel.displayName : viewModel.uesrName}"
...
/>

아래 내용을 참고 하였습니다.
https://developer.android.com/topic/libraries/data-binding/expressions?hl=ko

profile
어떤 것이든 그것이 지닌 특별한 속성이나 가치를 간과해서는 안 된다.

0개의 댓글