我是靠谱客的博主 懦弱小笼包,最近开发中收集的这篇文章主要介绍多个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之间的数据传递的全部内容,希望文章能够帮你解决多个Activity与Fragment之间的数据传递所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(30)

评论列表共有 0 条评论

立即
投稿
返回
顶部