[Android/Java] Jetpack DataBinding

Android Studio 4.1.3(windows판)에서의 흐름이 됩니다

Jetpack DataBinding에서 버튼 이벤트를 설정하는 방법을 예로 들어 설명합니다.

Android Developer의 Jetpack DataBinding에 대한 설명은 다음과 같습니다.

준비



아래를 참조하여 Jetpack Navigation + ViewModel을 만듭니다.

DataBinding을 사용하기 위한 설정



build.gradle에 다음을 추가합니다.
DataBinding을 활성화하면 Binding 클래스가 자동으로 생성됩니다.

build.gradle
android {
    dataBinding {
        enabled = true
    }
}

ViewModel에서 준비



버튼 이벤트를 받는 메소드를 준비합니다.

MainViewModel.java
public void onClickButton() {
}

Fragment의 Layout 준비



여기에서는 FrameLayout을 ConstraintLayout으로 설정하고 id : 버튼의 버튼을 추가합니다.



※ Convert FraneLayout to ConstraintLayout에서도 변경할 수 있습니다

Code를 열고 ConstraintLayout 태그의 부분에서 windows의 경우는 Alt+Enter 등으로
Convert to data bindinglayout을 선택합니다.


추가된 데이터 태그에 ViewModel 추가

main_fragment.xml
<data>
    <variable name="viewModel" type="com.xxx.sample.MainViewModel" />
</data>

버튼의 onClick에 다음을 추가합니다.
※Design 또는 Code로 직접 추가해 주세요
@{() -> viewModel.onClickButton()}



Fragment에서 준비



DataBinding 준비 및 DataBinding에 ViewModel을 설정합니다.

MainFragment.java
// ViewModelはFragment作成時のテンプレートで自動生成されたものです
private MainViewModel mViewModel;
// 自動生成されます(main_fragment.xml)
private MainFragmentBinding binding;
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container,
                             @Nullable Bundle savedInstanceState) {
    binding = DataBindingUtil.inflate(inflater, R.layout.main_fragment, container, false);
    final View view = binding.getRoot();
    return view;
}

@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
    super.onActivityCreated(savedInstanceState);
    mViewModel = new ViewModelProvider(this).get(MainViewModel.class);
    // TODO: Use the ViewModel
    binding.setViewModel(mViewModel);
}

이 기사는 다음 기사의 보충

좋은 웹페이지 즐겨찾기