EventBus是一个方便与Android中各组件通信的开源框架,开源地址;https://github.com/greenrobot/EventBus。EventBus功能很强大 ,今天在做一个功能时,遇到了点击事件的冲突问题及数据传递更新问题。具体点就是在可以上下拉刷新的ListView的Header上有GridView。此时,GridView的OnitemClick事件与ListView的OnItemClick事件冲突。而且我在实现 Griview的点击事件时,还要进行数据传递。

解决过程1:

OnitemClick点击冲突问题,我把在代码中的OnitemClick事件注释了,然后在GridView的item布局根据加了id,然后在Adapter中对整个item做了个OnClick()点击事件,问题解决了。

解决过程1:数据传递问题,就用到了EventBus:

在Activity中注册EventBus:在Oncreate()方法中;EventBus.getDefault().register(this);

然后在OnStop()或OnDestory()中:EventBus.getDefault().unregister(this);

事件处理方法onEventMainThread:

public void onEventMainThread(CategoryItemEvent event) {
Bundle bundle = new Bundle();
bundle.putInt(...);
.......//传递数据,实现跳转
}

在Adapter中做的就是POST事件;

holder.categoryRela.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
EventBus.getDefault().post(new CategoryItemEvent(pos));//在post的时候,传递了一个int类型的参数pos,这个参数在Activity中EventBus执行onEventMainThread(CategoryItemEvent event)时会用到这个pos。
}
});

更多相关文章

  1. android jni方法模拟高频按键点击
  2. Android悬浮按钮点击返回顶部FloatingActionButton
  3. Android内存分析AndroidStudio的运用
  4. 用Eclipse开发Android项目(转)
  5. 【android】AIDL传递自定义类型参数
  6. Android(安卓)ANR原因以及开发时如何预防
  7. android 滑动事件冲突解决 Touch事件处理机制
  8. 在Eclipse配置安装Android详细新手教程
  9. Context 传递数据

随机推荐

  1. Android(安卓)网络显示图片 通过代理访问
  2. Mac系统Android(安卓)M源码编译并导入And
  3. Android Intent 总结
  4. 状态栏去掉机主图标
  5. Flutter Android(安卓)打包发布
  6. android post 乱码问题
  7. 【handler】Android定时每十分钟执行一次
  8. android 中对apache httpclient及httpurl
  9. Android清理设备内存具体完整演示样例(一
  10. android拍照,调用系统相册,相片上传