Android EventBus框架的使用(二)
来源:互联网 发布:小七网络 编辑:程序博客网 时间:2024/05/12 00:09
第一篇文章介绍了基础,从下面的连接即可进入
http://blog.csdn.net/y874961524/article/details/51946238
这次实现一个选项卡的效果,每次单击时,切换对应的Item
ListFragment 中创建列表
/** * Created by yangtianrui on 16-7-23. * 注册EventBus */public class ItemListFragment extends ListFragment { @Override public void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); EventBus.getDefault().register(this); } @Override public void onViewCreated(View view, @Nullable Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); new Thread() { @Override public void run() { try { sleep(2000); } catch (InterruptedException e) { e.printStackTrace(); } // 模拟延时,在后台发送数据 EventBus.getDefault().post(new Event.ItemEvent(Item.ITEMS)); } }.start(); } @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { return super.onCreateView(inflater, container, savedInstanceState); } @Override public void onDestroy() { super.onDestroy(); EventBus.getDefault().unregister(this); } /** * 在主线程中订阅事件 */ @Subscribe(threadMode = ThreadMode.MainThread) public void onEventSetAdapter(Event.ItemEvent event) { setListAdapter(new ArrayAdapter<>(getActivity() , android.R.layout.simple_list_item_1, android.R.id.text1, event.getmList())); } /** * 发送位置信息 */ @Override public void onListItemClick(ListView l, View v, int position, long id) { super.onListItemClick(l, v, position, id); // 点击时发送事件 EventBus.getDefault().post(getListView().getItemAtPosition(position)); }}
DetailFragement中接收ListFragment post过来的事件
/** * Created by yangtianrui on 16-7-23. */public class ItemDetailFragment extends Fragment { private TextView mTvText; @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { View root = inflater.inflate(R.layout.fragment_detail, container, false); mTvText = (TextView) root.findViewById(R.id.id_tv_text); return root; } @Override public void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); EventBus.getDefault().register(this); } @Override public void onDestroy() { super.onDestroy(); EventBus.getDefault().register(this); } @Subscribe(threadMode = ThreadMode.MainThread) public void onEventSetText(Item item) { String text = item.content; mTvText.setText(text); }}
0 0
- Android EventBus框架的使用(二)
- EventBus 《二》 Android EventBus的简单使用
- Android EventBus框架的使用
- Android框架之EventBus的简单使用
- android中EventBus总线框架的使用
- Android框架之EventBus的使用
- EventBus框架的使用
- Android中 EventBus使用(二)
- Android EventBus的使用
- android EventBus的使用
- Android-eventBus的使用
- Android EventBus的使用
- Android EventBus的使用
- android EventBus的使用
- EventBus框架的简单使用
- 浅谈EventBus框架的使用
- Android框架之路——EventBus的使用
- EventBus的使用(二)注解
- c 语言头文件和源文件
- 几个重要的注意点
- 59.In your database, the current status of a PL/SQL procedure has become INVALID. Which action woul
- UITableView 到达顶部或底部的判断
- OOP面向对象编程之俄罗斯方块项目实现过程
- Android EventBus框架的使用(二)
- android studio查看sha1
- 本周小结
- TFS2015解决方案中新建团队项目
- android ANR产生原因和解决办法
- java.security.AccessControlException: access denied
- iOS Storyboard全解析
- Win7机器上安装Ubuntu 14.0.4
- 守护进程