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。
}
});
EventBus在Android中的简单使用的更多相关文章
- MVP架构在xamarin android中的简单使用
好几个月没写文章了,使用xamarin android也快接近两年,还有一个月职业生涯就到两个年了,从刚出来啥也不会了,到现在回头看这个项目,真jb操蛋(真辛苦了实施的人了,无数次吐槽怎么这么丑),怪 ...
- android中实现简单的聊天功能
这个例子只是简单的实现了单机版的聊天功能,自己跟自己聊,啦啦~~ 主要还是展示RecyclerView控件的使用吧~ 参考我之前写的文章: android中RecyclerView控件的使用 andr ...
- Gradle在Android中的简单使用
Gradle在Android中简单的使用 还望支持个人博客站:http://www.enjoytoday.cn Android Studio 使用gradle进行工程构建,为了更好的了解整个andro ...
- android 中Log - 简单使用
例如,我们可以使用'Log.d'进行Debug,在java代码中输入Log.d(String tag, String message),tag为自己命名的tag,message为待输出的信息.然后打开 ...
- android中的简单animation(四)3D transition
animation_main_screen.xml: <?xml version="1.0" encoding="utf-8"?> <Fram ...
- android中的简单animation(三)accelerate(加速),decelerate(减速),anticipate,overshoot,bounce
animation_3.xml: <?xml version="1.0" encoding="utf-8"?> <LinearLayout x ...
- android中的简单animation(二)push up,push left,cross fade,hyperspace
animation_2.xml: <?xml version="1.0" encoding="utf-8"?> <LinearLayout x ...
- android中的简单animation(一)shake
1.shake animation_1.xml: <?xml version="1.0" encoding="utf-8"?> <Linear ...
- android中实现简单的播放
MediaPlayer mediaPlayer1; mediaPlayer1 = MediaPlayer.create(getBaseContext(), R.raw.ic_yanyuan); med ...
随机推荐
- 一些神奇的JS功效
1: 沉睡排序 var numbers=[1,2,3,4,5,5,99,4,20,11,200]; numbers.forEach((num)=>{ setTimeout(()=>{ co ...
- 小米/红米导入VCF联系人乱码问题解决
PS:尽量不要用什么豌豆荚啊.微信啊.QQ啊之类的通讯录备份,那就等于把自己的通讯录免费送给腾讯他们了....还是自己手动的好一些,但是小白用户或者经常丢手机的卖就卖吧,总比联系人都丢了要好~~~ 默 ...
- postgis常用操作手册
查询所有函数: SELECT * FROM pg_proc; 更新坐标系st_setsrid,查看坐标系:st_srid 创建空间索引: CREATE INDEX [indexname] ON [ta ...
- scala读取parquet文件
import org.apache.spark.SparkConfimport org.apache.spark.SparkContextimport org.apache.spark.sql.SQL ...
- app.config 配置多项 配置集合 自定义配置(3)
再说说利用app.config配置多个自定义的方法.先看这个例子:美国家庭Simpson的家里有父亲母亲和三个儿女,而中国的老王只有独生子女.结构如下: <?xml version=" ...
- Map的遍历方法(java)
方法一.Set<Object> keySet();返回集合中所有的key组成的集合. 代码:Map<String , String > map=new HashMap();f ...
- 在ASP.NET开发中一些单词的标准缩写
有些词可能共用一些缩写.带星号的缩写或词来源于PeopleSoft标准. The following standard word abbreviations should be used in nam ...
- C#的Main(String[] args)参数输入问题
1.新建一个控制台应用程序,保存在桌面上,Main函数如下所示 using System;using System.Collections.Generic;using System.Linq;usin ...
- matlab R2016a 中添加新的工具箱的方法
matlab添加新的工具箱分三步: 1. 下载新的工具箱,并解压. 2. 将解压后的工具箱文件夹移到安装的matlab中的toolbox文件夹中 3. 添加新文件夹及其子文件夹到路径中. 接下来以添加 ...
- android 开源收藏
第一部分 个性化控件(View) 主要介绍那些不错个性化的View,包括ListView.ActionBar.Menu.ViewPager.Gallery.GridView.ImageView.Pro ...