[Android/Java] Jetpack DataBinding
Android Studio 4.1.3(windows版) での流れとなります
Jetpack DataBindingでボタンイベントを設定する方法を例にして説明します
Android DeveloperのJetpack DataBindingの説明は以下です
準備
以下を参考にJetpack Navigation + ViewModelを作成してください
DataBindingを使用するための設定
build.gradleに以下を追加します
DataBindingを有効にするとBindingクラスが自動生成されます
android {
dataBinding {
enabled = true
}
}
ViewModelでの準備
ボタンイベントを受けるメソッドを用意します
public void onClickButton() {
}
FragmentのLayoutの準備
ここではFrameLayoutをConstraintLayoutにしてid:buttonのボタンを追加します
※ Convert FraneLayout to ConstraintLayoutでも変更できます
Codeを開きConstraintLayoutタグの箇所でwindowsの場合はAlt+Enterなどで
Convert to data bindinglayout を選択します
追加されたdataタグにViewModelを追加します
<data>
<variable name="viewModel" type="com.xxx.sample.MainViewModel" />
</data>
ボタンのonClickに以下を追加します
※DesignまたはCodeで直接追加してください
@{() -> viewModel.onClickButton()}
Fragmentでの準備
DataBindingの準備とDataBindingにViewModelをセットします
// 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);
}
この記事は以下の記事の補足です
Author And Source
この問題について([Android/Java] Jetpack DataBinding), 我々は、より多くの情報をここで見つけました https://qiita.com/smurata_pvt/items/feaab9b7a8e186e334f3著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .