Fragment 之间传递数据
關(guān)于Fragment 之間的跳轉(zhuǎn)這里就不再說了 有興趣的可以看我的這邊博客
Fragment 跳轉(zhuǎn) ,,,點(diǎn)擊查看把
Fragment 跳轉(zhuǎn)首先先跳轉(zhuǎn)到宿主的Activity 上
這里以在同一個(gè)Activity 上2個(gè)Fragment 為例?
第一種方法:
MainActivity main = (MainActivity) getActivity();main.setTabSelection(2);
這里用到了自己在MainActivity的切換Fragment的方法
然后在MainActivity case 為2 的地方直接寫傳遞的數(shù)據(jù)
case 2:OrderMeFragment orderMeFragment = new OrderMeFragment();Bundle bundle = new Bundle();bundle.putString("str", "藍(lán)天");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;
這里傳遞了一個(gè)藍(lán)天
然后在接受值的Fragment 里面 寫一個(gè)onCreate 方法接受值如下
@Overridepublic 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;
這里寫一個(gè)newInstance 里面?zhèn)鬟f一個(gè)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;}@Overridepublic void onCreate(@Nullable Bundle savedInstanceState) {super.onCreate(savedInstanceState);if (getArguments() != null) {index = getArguments().getInt("index");Log.e("-------index", String.valueOf(index));}}
這樣我們就看一個(gè)看到接受的值了
當(dāng)然還有EventBus 等之類的傳值 ,不過能傳值的還是不建議使用EventBus ,
Fragment 傳值 需要先明白Fragment 的跳轉(zhuǎn)問題 然后在傳值就明白的多了
一般都是在Fragment的宿主Activity 里面寫傳遞的值 ,不是同一個(gè)Activity Fragment 之間的傳值也是類似這樣
到切換Fragment的地方寫傳遞的值。。。。。
?
總結(jié)
以上是生活随笔為你收集整理的Fragment 之间传递数据的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 我想学化妆,大概要多少钱
- 下一篇: 年薪40万到50万的人一般做什么工作??