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