我有活动A开始活动B.让我首先说我相信活动A不能使用" startActivityForResult()"因为活动B可以替换另一个活动B(这意味着,开始另一个活动并完成自己),如果发生这种情况,活动A将不再期待结果,并且第二个活动B无法通过活动结果。
活动A具有模型的实例。无论如何我可以从活动B访问模型吗?
答案 0 :(得分:1)
我通过添加到我的MainActivity中解决了这个问题:
private static MainActivity main;
public static MainActivity getMain() {
return main;
}
我知道这不是一个好习惯。
答案 1 :(得分:1)
你应该使用一层持久性,例如:
...存储模型类型的状态。这样,状态在配置更改中持久,导致Android重新创建Activity
个实例。
答案 2 :(得分:1)
在ActivityA中你必须实现Serializable并使用Intent。 试试吧。
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// Go to Activity B
Intent gotoActivityB = new Intent(this, ActivityB.class);
gotoActivityB.putExtra("ACTIVITY_A", this);
startActivity(gotoActivityB);
}
在活动B中你可以从Intent获得活动A
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_b);
// get Activity A
if (getIntent() != null){
AcitivityA acitivityA = (AcitivityA) getIntent().getSerializableExtra("ACTIVITY_A");
}
}
抱歉我的英语不好:(