Provides useful subclasses from Support Library that work with Data Binding.
repositories {
jcenter()
maven { url "https://jitpack.io" }
}
dependencies {
compile 'ooo.oxo:data-binding-support:1.1.1'
compile 'com.android.support:appcompat-v7:23.2.1'
compile 'com.android.support:recyclerview-v7:23.2.1'
}publicclassMainActivityextendsBindingAppCompatActivity<MainActivityBinding> {
@OverrideprotectedintprovideContentView(@NullableBundlesavedInstanceState) {
returnR.layout.main_activity;
}
@OverrideprotectedvoidonCreate(BundlesavedInstanceState) {
super.onCreate(savedInstanceState);
// do anything you want, for example:binding.setUser(user);
}
}publicclassMainFragmentextendsBindingFragment<ProfileFragmentBinding> {
@OverridepublicintprovideContentView(@NullableBundlesavedInstanceState) {
returnR.layout.profile_fragment;
}
@OverridepublicvoidonViewCreated(Viewview, @NullableBundlesavedInstanceState) {
// do anything you want, for example:binding.setUser(user);
}
}publicclassPhotoAdapterextendsBindingRecyclerView.ListAdapter<Photo, PhotoAdapter.ViewHolder> {
publicPhotoAdapter(Contextcontext, ObservableList<Photo> data) {
super(context, data);
}
@OverridepublicViewHolderonCreateViewHolder(ViewGroupparent, intviewType) {
returnnewViewHolder(inflater, parent);
}
@OverridepublicvoidonBindViewHolder(ViewHolderholder, intposition) {
holder.binding.setItem(data.get(position));
}
publicclassViewHolderextendsBindingRecyclerView.ViewHolder<PhotoItemBinding> {
publicViewHolder(LayoutInflaterinflater, ViewGroupparent) {
super(inflater, R.layout.photo_item, parent);
}
}
}privatefinalObservableListphotos = newObservableArrayList();
@OverrideprotectedvoidonCreate(BundlesavedInstanceState) {
super.onCreate(savedInstanceState);
/* ... */recyclerView.setAdapter(newPhotoAdapter(this, photos));
// Just add your items in the ObservableList, BindingRecyclerView.ListAdapter will take care of the// binding for you.photos.addAll(/* ... */);
}
@OverrideprotectedvoidonDestroy() {
super.onDestroy();
/* ... */// Remember to release the adapter, because it has a reference to the `photos` ObservableList.recyclerView.setAdapter(null);
}