日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

Fragment 之间传递数据

發布時間:2023/11/27 生活经验 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Fragment 之间传递数据 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

關于Fragment 之間的跳轉這里就不再說了 有興趣的可以看我的這邊博客

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 方法接受值如下

    @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;

這里寫一個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;}@Overridepublic 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的地方寫傳遞的值。。。。。

?

總結

以上是生活随笔為你收集整理的Fragment 之间传递数据的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。