我以前做过这一点,应该提醒你,它不容易,因为它听起来
步骤1与RX
实现自己的简单事件公共汽车上,你可以去这个网站是 - weddingpartyapp.com这是Kaushik Gopal使用RxAndroid创建简单而高效的EventBus的一个很好的教程。
或者你可以用我的代码here(这是一个被遗弃的项目,我开始了一个一年多以前,但有一个工作EventBus和回答你的问题)
步骤2后,你已经实现你的EventBus,你“将不得不为所有你想绕过公交车(轻击,双击,长按等)的手势对象
看看这个代码,并实现你需要code
步骤中的所有对象3如果您复制了我的代码,请将此代码添加到您的RecyclerView.OnItemTouchListener实现中与工作
public RecyclerItemClickListener(Context c) {
bus = ... //get instance of bus
gestureDetector = new GestureDetector(c, new GestureDetector.SimpleOnGestureListener() {
@Override
public boolean onSingleTapUp(MotionEvent e) {
bus.putValue(string, childPosition);
bus.publish(new BusEvents.RecyclerViewItemClick());
return true;
}
@Override
public void onLongPress(MotionEvent e) {
bus.publish(new BusEvents.TapEvent());
}
});
}
人刚刚做什么方法创建
希望这有助于一样!
编辑
weddingpartyapp.com已不存在。请使用Way Back Machine的this链接作为教程。
hi mate!感谢这个解决方案。快速的问题:BusEvents.RecyclerViewItemClick()将包含什么?你自己的一套onclick功能? – user3115201
如果我的理解是正确的,你还利用公共汽车作为点击位置的阵列地图存储? – user3115201
总线事件类仅仅是可能发生的所有事件的包装类(有点),而每个事件只是一个空对象。你只需在公共汽车上用字符串传递空的物体。例如:在位置5上的点击将作为在公共汽车中的入口并且以BusEvents.RecyclerViewItemClick的对象发布。因此所有订阅BusEvents.RecyclerViewItemClick的人都将获得对。希望有所帮助! –