为了账号安全,请及时绑定邮箱和手机立即绑定

Android-使用不同的Intent值返回Previous Activity

Android-使用不同的Intent值返回Previous Activity

GCT1015 2019-07-25 10:23:12
Android-使用不同的Intent值返回Previous Activity我有一个具有此转换的应用程序: A -> B -> C -> D-> C进入后C,我必须检查一个标志。然后我必须将其作为意图传递(让我们说intentX = false)D。做完之后D,它会C在按下按钮后返回。我所做的只是再次传递intentX值为true,然后再次传递startActivity C. 那么它发生了什么呢?它创造了另一个活动C.我希望发生的是,我不会有开始新的活动C,但只调用使用以前的C super.onBackPressed()。但我无法传递新的价值intentX。还有其他方式,实现我想要的。我可能错过了一些。
查看完整描述

2 回答

?
红糖糍粑

TA贡献1815条经验 获得超6个赞

你想要的是什么startActivityForResult()。当你走的时候CD的,而不是使用,startActivity()使用替代startActivityForResult()。然后,当你想要返回时DC你可以使用setResult()包含一个可以传回的Intent对象。extrasC

我不建议这样做的onBackPressed(),如果你不具备,因为这不会是用户期望的结果。相反,您应该使用诸如Button点击之类的事件返回此数据。

所以,C你会做类似的事情

 Intent i = new Intent(new Intent(C.this, D.class);
 startActivityForResult(i, 0);

然后在D你准备好回来的时候

 Intent i = new Intent();
 i.putExtra();  // insert your extras here
 setResult(0, i);

然后当你返回时,C你将输入这个方法(取自Docs

protected void onActivityResult(int requestCode, int resultCode,
         Intent data) {
     if (requestCode == PICK_CONTACT_REQUEST) {
         if (resultCode == RESULT_OK) {
             // A contact was picked.  Here we will just display it
             // to the user.
             startActivity(new Intent(Intent.ACTION_VIEW, data));

             /* 
                can also get the extra sent back through data
                using data.getStringExtra("someKey"); 
                assuming the extra was a String
             */

         }


查看完整回答
反对 回复 2019-07-25
  • 2 回答
  • 0 关注
  • 518 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信