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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

多个Activity与Fragment之间的数据传递

發布時間:2024/4/18 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 多个Activity与Fragment之间的数据传递 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

多個Activity與Fragment之間數據傳遞

    • 問題描述
    • 解決思路
    • 具體解決

bug de到親媽落淚。

問題描述

首先展示個人問題的整體框架:

  • ActivityA:主頁面,有一個PageView控件放有多個Fragment;存在一個按鈕可以啟動ActivityB。
  • ActivityB:存在按鈕可以啟動ActivityC。
  • ActivityC:填寫表單,要求返回數據到ActivityA的某個Fragment。

當前的問題就是:
如何從ActivityA依次啟動Activity,最后在ActivityA中的Fragmnet中獲取ActivityC的數據?

解決思路

參照文章:
https://blog.csdn.net/SYIF88/article/details/50582378?_t=t

大概就是,按照“棧”的思想,通過一步步返回不同的resultCode,使ActivityA知道應該對應操作哪個Fragment。最后在ActivityA的onActivityResult()方法中調用對應Fragment.onActivityResult()即可。

具體解決

ActivityA -> ActivityB

startActivityForResult(new Intent(ActivityA.this, ActivityB.class), REQUEST_CODE_NEW_FAB_CHOICE);

ActivityB -> ActivityC

startActivityForResult(new Intent(ActivityB.this, ActivityC.class), REQUEST_CODE_NEW_EDIT_RECEIVE);

ActivityC返回數據給ActivityB

data = new Intent(); data.putExtra("XXXX", XXXX.getText().toString()); setResult(RESULT_CODE_EDIT_RECEIVE_OK, data); finish();

ActivityB返回數據給ActivityA

protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {super.onActivityResult(requestCode, resultCode, data);if (requestCode == REQUEST_CODE_NEW_EDIT_RECEIVE && resultCode == RESULT_CODE_EDIT_RECEIVE_OK) {setResult(RESULT_CODE_FAB_RECEIVE_OK, data);finish();}}

ActivityA獲得數據,分析操作哪個Fragment,調用對應的onActivityResult()

protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {super.onActivityResult(requestCode, resultCode, data);if (requestCode == REQUEST_CODE_NEW_FAB_CHOICE && resultCode == RESULT_CODE_FAB_RECEIVE_OK) {bottomNavigationView = findViewById(R.id.bottom_navigation_view);bottomNavigationView.setCurrentItem(2);Fragment receiveFragment = adapter.getItem(2);receiveFragment.onActivityResult(requestCode, resultCode, data);}}

總結

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

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