EventBus在Android中的简单使用

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。

}

});

时间: 2024-08-03 07:21:13

EventBus在Android中的简单使用的相关文章

MVP架构在xamarin android中的简单使用

好几个月没写文章了,使用xamarin android也快接近两年,还有一个月职业生涯就到两个年了,从刚出来啥也不会了,到现在回头看这个项目,真jb操蛋(真辛苦了实施的人了,无数次吐槽怎么这么丑),怪自己太年轻了,还好是给指定行业的人使用. 重新学习思考之后,再看自己在项目中的某些实现的代码,的确不尽人意,甚至想骂自己. 项目经常改,改来该去,代码一直增加,一个fragment也没什么功能,接近1000行的代码,用region括起来,开看起来还挺整齐的,找的时候就凉了.究其原因,没有一种模式,所

android中实现简单的聊天功能

这个例子只是简单的实现了单机版的聊天功能,自己跟自己聊,啦啦~~ 主要还是展示RecyclerView控件的使用吧~ 参考我之前写的文章: android中RecyclerView控件的使用 android中使用Nine-Patch图片 1.先添加一个关于聊天内容的Chat.java类: package com.example.chenrui.common; public class Chat { private String targetUser; private String content

Android中Xfermode简单用法

首先在写这篇博客的时候,需要说明我是参考了那篇博文给我的灵感: 详解Paint的setXfermode(Xfermode xfermode) 其次呢,在写这篇博文的时候呢也避免不了抱怨啊.网上其他的关于Xfermode介绍的大部分都是google官方文档中属性的含义,都很雷同估计都是翻译过来的 我想说的是就不能有点原创吗? so,我决定写这篇文章: 一是抒发我心中的纠结: 二是抒发这么多天下文章一大抄就是没有自己出的文章: 三是抄就抄吧,也要加入自己的感悟把: 四是记录一下,以免以后忘记: 另外

适配器模式 在Android中的简单理解

Android 在Android上提到适配器模式就会想到最常用的ListView和BaseAdapter 在这个功能的使用中,类似于适配器模式的对象适配器 例如在ListView中想用一个getView()方法,但是不同的数据,不同的需求,会有不同的getView()结果,所以getView()不能写死了,那么可能就想到了用适配器模式 所以ListView里面包含了一个ListAdapter的成员变量,实际上是ListView继承了AbsListView,ListAdapter变量是在AbsLi

android 中Log - 简单使用

例如,我们可以使用'Log.d'进行Debug,在java代码中输入Log.d(String tag, String message),tag为自己命名的tag,message为待输出的信息.然后打开 LogCat,通过'Add a new logcat filter'创建一个过滤器,filter-name为任意,'by log tag'的值与在java代码中的Log.d(String tag, String message)的参数中的tag一致.运行即可看到message信息.

Android中ZXing简单使用

ZXing是目前用的比较广泛的一个二维码扫描库,扫描快.识别率高,网上有很多关于zxing的简化和使用,这里做一个小结: 1.重写com.mining.app.zxing.view包下面的ViewfinderView类来实现自己的扫描框样式. 2.在CameraManager中修改扫描框的大小 这篇文章写的不错,大家可以看看http://blog.csdn.net/xiaanming/article/details/10163203 ps:在修改zxing的过程中,我也遇到了一些问题,主要是修改

android中RecyclerView控件实现长按弹出PopupMenu菜单功能

之前写过一篇文章:android中实现简单的聊天功能 现在是在之前功能的基础上,添加一个长按聊天记录,删除对应聊天记录的功能 RecyclerView控件,没有对应的长按事件,我们需要自己手工添加,修改对应的适配器类,注意红色内容为添加内容 ChatAdapter.java: package com.example.chenrui.app1; import android.support.annotation.NonNull; import android.support.v7.widget.R

Android 中 EventBus 的使用(2):缓存事件

在上一篇文章中,我曾提到我所选择的是Green Robot提供的EventBus(Android平台),而且这并非只是我一个人的选择.在最近一次查看中,我发现选择它的人数已经是Otto(由Jake Wharton和其他大神们在Square上所提供的版本)的两倍之多了.GR的版本显然比Otto有更多的性能提升,但最令我动心的地方在于它添加了很多新功能.今天我就打算谈谈其中的一项:通过sticky事件进行事件缓存. sticky是什么? sticky事件就是指在EventBus内部被缓存的那些事件.

Android中的帧动画的简单使用

Android中动画主要有下面几种,帧动画(frame),补间动画(tween),属性动画(property) 我们平时项目中主要用的是帧动画和补间动画 帧动画需要我们准备一组静态图片,这些图片是通过分解动画得来的,静态图片连起来播放形成动画效果 我们在res目录下新建一个drawable目录,用来存放动画资源和xml文件 图片如下: girl.xml 注意android:oneshot="false|true" 该属性控制动画是否重复播放,false代表重复播放 <?xml v