很难解决我的问题,但现在就去了。
我有一个活动活动1 从中我可以打开三个活动中的一个活动2 ,活动3 和活动4 ,我希望结果来自 Activity 3 。在每个活动中,我可以创建一个新的意图来打开任何其他活动,然后在当前活动上调用finish()
。
当我从 Activity 1 打开 Activity 3 然后按下按钮完成 Activity 3 时,我有代码正常工作消息完美。我的问题在于从活动1 打开活动2 然后从活动2 打开活动3 (依次打电话) 活动2 上的finish()
,然后按活动3 中的按钮,并将相同的消息发送到活动1 。目前发送的结果代码为0,当我试图让它发送结果代码'726'时。
总之,我希望能够从其他活动的未知级别的意图创建的活动中发送消息,但是如果有意义的话,该消息总是返回到相同的最低级别活动。
如果这很难理解我很抱歉,我希望有人可以帮助我
答案 0 :(得分:2)
我讨厌回答我自己的问题,但无论如何我都想到了其他寻找答案的人:
来自主要活动
public void onClick2Activity(View v){
Intent i = new Intent();
i.setClass(1Activity.this, 2Activity.class);
startActivityForResult(i, 0);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(resultCode==726){
Bundle bundle = data.getExtras();
int string = bundle.getInt("test");
Log.v("Extra", "" + string);
Toast.makeText(this, "Pass", Toast.LENGTH_LONG).show();
}
else{
Toast.makeText(this, "Fail", Toast.LENGTH_LONG).show();
}
}
从2Activity:
public void onClick3Activity(View v){
Intent i = new Intent();
i.setClass(2Activity.this, 3Activity.class);
startActivityForResult(i, 1);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(resultCode==726){
Intent in = new Intent();
in.putExtra("test", "test");
setResult(726,in);
finish();
}
else{
Log.v("Failed", "Failed");
}
}
来自3Activity:
public void onItemClick(){
Intent in = new Intent();
weaponID = position + 1;
in.putExtra("test", "test");
setResult(726,in);
finish();
}
答案 1 :(得分:1)