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 回答
![?](http://img1.sycdn.imooc.com/533e4d470001a00a02000200-100-100.jpg)
红糖糍粑
TA贡献1815条经验 获得超6个赞
你想要的是什么startActivityForResult()
。当你走的时候C
到D
的,而不是使用,startActivity()
使用替代startActivityForResult()
。然后,当你想要返回时D
,C
你可以使用setResult()
包含一个可以传回的Intent
对象。extras
C
我不建议这样做的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 */ }
- 2 回答
- 0 关注
- 518 浏览
添加回答
举报
0/150
提交
取消