首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何将额外的意图传递给活动和前一个活动中的部分

如何将额外的意图传递给活动和前一个活动中的部分
EN

Stack Overflow用户
提问于 2019-08-01 06:34:20
回答 2查看 135关注 0票数 0

我有两个活动,活动B是用户上传他的个人资料的地方,一旦他上传,他将重定向到活动A,其中包含两个片段,片段一和片段二

当应用程序启动时,用户被重定向到活动A,其中有抽屉菜单,并显示为注册,一旦用户单击注册,则活动B打开。当用户提交按钮时,我将额外的内容从活动B传递给A,然后A将从菜单中隐藏注册按钮。

在活动B中

代码语言:javascript
复制
                Intent in = new Intent(B.this, A.class);
                in.putExtra("hideRegistermenu", true);
                startActivity(in);

在活动A中

代码语言:javascript
复制
 if(getIntent().getBooleanExtra("hideRegistermenu", false)) {

        menu.findItem(R.id.register).setVisible(false);

    }

它工作得很好,我的问题是因为我在底部的片段1中也有注册按钮,所以当用户上传他/她的个人资料并重定向到活动A时,我也想更改片段A中的按钮文本或隐藏按钮。

但是,我如何将相同的意图附加内容传递给活动A中的片段,然后根据收到的意图附加内容执行我的任务。

提前谢谢。

EN

回答 2

Stack Overflow用户

发布于 2019-08-01 06:42:31

在活动A中,使用以下命令启动活动B:

代码语言:javascript
复制
 public static final int UPDATED_USER = 20;
startActivityForResult(ActivityA.this,ActivityB.class,UPDATED_USER );

在活动A上实现方法OnActivityResult,如下所示:

代码语言:javascript
复制
   @Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if (resultCode == RESULT_OK&&requestCode==UPDATED_USER  ){
        //Your code here
        Bundle bundle = data.getExtras();   //Your new data
        String name = bundle.getString("name");

    }
}

启动活动B和用户更新配置文件完成活动后,如下所示:

代码语言:javascript
复制
    Intent data = new Intent();
    data.putString("name","name");
    //put All your data
    setResult(Activity.RESULT_OK, data);
    finish();
票数 1
EN

Stack Overflow用户

发布于 2019-08-01 12:38:35

步骤1:将数据从活动传递到片段,

代码语言:javascript
复制
Bundle bundle = new Bundle();
bundle.putString("name", "My name");
// set MyFragment Arguments
MyFragment myObj = new MyFragment();
myObj.setArguments(bundle);

第2步:将数据接收到片段

代码语言:javascript
复制
public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        if (getArguments() != null) {
            mParam1 = getArguments().getString("name");
        }
    }

在您的代码中应用这一点。

我希望它能帮助你!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57299639

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档