Fragment 之间传递数据
发布日期:2021-06-30 08:02:17
浏览次数:4
分类:技术文章
本文共 2770 字,大约阅读时间需要 9 分钟。
关于Fragment 之间的跳转这里就不再说了 有兴趣的可以看我的这边博客
Fragment 跳转首先先跳转到宿主的Activity 上
这里以在同一个Activity 上2个Fragment 为例
第一种方法:
MainActivity main = (MainActivity) getActivity(); main.setTabSelection(2);
这里用到了自己在MainActivity的切换Fragment的方法
然后在MainActivity case 为2 的地方直接写传递的数据
case 2: OrderMeFragment orderMeFragment = new OrderMeFragment(); Bundle bundle = new Bundle(); bundle.putString("str", "蓝天"); orderMeFragment.setArguments(bundle); ordermeImage.setImageResource(R.mipmap.btn_tab_mine_selected); ordermeText.setTextColor(Color.parseColor("#5EC9FA")); if (orderMeFragment == null) { orderMeFragment = new OrderMeFragment(); transaction.add(R.id.order_content, orderMeFragment); } else { transaction.show(orderMeFragment); } break;
这里传递了一个蓝天
然后在接受值的Fragment 里面 写一个onCreate 方法接受值如下
@Override public void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); if (getArguments() != null) { String str = getArguments().getString("str"); Log.e("----------str",str); } }
这样和我们Activity 之间的传值类似, 不过set 和get 存放值和接受值要注意下
第二种方法 使用 newInstance
1 同样的我们先获取宿主Activity
MainActivity main = (MainActivity) getActivity(); main.setTabSelection(2);
然后到MainActivity 里面 case 里面 ,就是到切换Fragment的地方 传值
case 2: OrderMeFragment orderMeFragment = OrderMeFragment.newInstance(2); ordermeImage.setImageResource(R.mipmap.btn_tab_mine_selected); ordermeText.setTextColor(Color.parseColor("#5EC9FA")); if (orderMeFragment == null) { orderMeFragment = new OrderMeFragment(); transaction.add(R.id.order_content, orderMeFragment); } else { transaction.show(orderMeFragment); } break;
这里写一个newInstance 里面传递一个int 为2的值
到要接受值的Fragment 里面填写如下
private int index; public static OrderMeFragment newInstance(int index) { OrderMeFragment df = new OrderMeFragment(); Bundle bundle = new Bundle(); bundle.putInt("index", index); df.setArguments(bundle); return df; } @Override public void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); if (getArguments() != null) { index = getArguments().getInt("index"); Log.e("-------index", String.valueOf(index)); } }
这样我们就看一个看到接受的值了
当然还有EventBus 等之类的传值 ,不过能传值的还是不建议使用EventBus ,
Fragment 传值 需要先明白Fragment 的跳转问题 然后在传值就明白的多了
一般都是在Fragment的宿主Activity 里面写传递的值 ,不是同一个Activity Fragment 之间的传值也是类似这样
到切换Fragment的地方写传递的值。。。。。
转载地址:https://huxiaomu.blog.csdn.net/article/details/100302413 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
表示我来过!
[***.240.166.169]2024年04月05日 21时47分19秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
leetcode 122 买卖股票的最佳时机II
2019-04-30
leetcode 309 最佳买卖股票含冷冻期
2019-04-30
leetcode 714 买卖股票的最佳时机含手续费
2019-04-30
leetcode3 无重复字符的最长子串
2019-04-30
leetcode 76 最小覆盖子串
2019-04-30
leetcode 1143. 最长公共子序列
2019-04-30
leetcode 83. 删除排序链表中的重复元素
2019-04-30
智能体 Intelligent Agent
2019-04-30
Network Compression网络压缩(一)
2019-04-30
GAN系列(零)—— GAN的发展(两条路线)
2019-04-30
Conditional GAN (CGAN) 条件生成网络
2019-04-30
强化学习(三) —— Policy Gradient 策略梯度
2019-04-30
docker安装oracle(win10)
2019-04-30
Cloudera Quickstart & HUE
2019-04-30
HUE
2019-04-30
CDH
2019-04-30
行为树 BT
2019-04-30
Cassandra & CQL
2019-04-30
Oracle数据库
2019-04-30
Oracle数据库命令
2019-04-30