[android] 데이터 바인딩으로 커스텀 뷰바인딩

안녕하세요! 안드로이드 개발자 여러분! 오늘은 안드로이드 앱에서 데이터 바인딩(Data Binding)을 사용하여 커스텀 뷰 바인딩(Custom View Binding)을 하는 방법에 대해 알아보겠습니다.

안드로이드 데이터 바인딩을 사용하면 XML 레이아웃에서 View와 데이터를 묶을 수 있습니다. 이를 통해 코드의 가독성을 높이고 데이터와 UI 요소 간의 결합을 강화할 수 있습니다.

데이터 바인딩 설정하기

먼저, build.gradle 파일에 데이터 바인딩을 활성화합니다.

android {
    ...
    buildFeatures {
        dataBinding = true
    }
}

커스텀 뷰 바인딩 구현하기

XML 레이아웃 작성

<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android">
   <data>
       <variable
           name="user"
           type="com.example.User" />
   </data>

   <LinearLayout
       android:layout_width="match_parent"
       android:layout_height="wrap_content">
       
       <com.example.CustomTextView
           android:layout_width="wrap_content"
           android:layout_height="wrap_content"
           android:text="@{user.name}" />

   </LinearLayout>
</layout>

커스텀 뷰 클래스 작성

public class CustomTextView extends AppCompatTextView {

    public CustomTextView(Context context, AttributeSet attrs) {
        super(context, attrs);
        initView();
    }

    private void initView() {
        // 초기화 작업 수행
    }

    @BindingAdapter("android:text")
    public static void setText(CustomTextView view, String text) {
        view.setText(text);
    }
}

데이터 바인딩과 커스텀 뷰 바인딩 사용하기

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        ActivityMainBinding binding = DataBindingUtil.setContentView(this, R.layout.activity_main);
        
        User user = new User("John Doe");
        binding.setUser(user);
    }
}

이제 커스텀 뷰인 CustomTextView에 데이터를 바인딩할 수 있습니다!

데이터 바인딩을 이용하여 커스텀 뷰를 만들면 레이아웃과 로직을 더 깔끔하게 분리할 수 있고, 생산성을 높일 수 있습니다.

더 많은 정보를 원하시면 안드로이드 공식 문서를 참고해보세요!

성공적인 안드로이드 앱 개발을 기원합니다! 🚀