本文用到了:dataBinding、android架构组件
在使用RecyclerView时,点击item事件,我们通常会写一个OnItemClickListener接口,然后回调监听。在这里我们用安卓架构组件的LiveData试一下吧~
官方 todo-mvvm-live 示例里用了一个 SingleLiveEvent (继承 MutableLiveData):
/**
* A lifecycle-aware observable that sends only new updates after subscription, used for events like
* navigation and Snackbar messages.
* <p>
* This avoids a common problem with events: on configuration change (like rotation) an update
* can be emitted if the observer is active. This LiveData only calls the observable if there's an
* explicit call to setValue() or call().
* <p>
* Note that only one observer is going to be notified of changes.
*/
public class SingleLiveEvent<T> extends MutableLiveData<T> {
private static final String TAG = "SingleLiveEvent";
private final AtomicBoolean mPending = new AtomicBoolean(false);
@MainThread
public void observe(LifecycleOwner owner,