Java 将消息从多个活动传递到主活动
很难把我的问题讲清楚,但问题来了 我有一个活动活动1,从这里我可以打开三个活动中的一个活动活动2,活动3和活动4,我希望其中的一个结果来自活动3。在这些活动中,我可以创建一个新的意图来打开任何其他活动,依次对当前活动调用Java 将消息从多个活动传递到主活动,java,android,android-activity,android-intent,Java,Android,Android Activity,Android Intent,很难把我的问题讲清楚,但问题来了 我有一个活动活动1,从这里我可以打开三个活动中的一个活动活动2,活动3和活动4,我希望其中的一个结果来自活动3。在这些活动中,我可以创建一个新的意图来打开任何其他活动,依次对当前活动调用finish() 当我从活动1中打开活动3,然后按下按钮完成活动3时,代码将正常工作。它将完美地发送消息。我的问题在于,假设从活动1开始打开活动2,然后从活动2开始打开活动3(依次调用活动2上的finish()),然后按下活动3中的按钮,并向活动1发送相同的消息。当我试图让它发送
finish()
当我从活动1中打开活动3,然后按下按钮完成活动3时,代码将正常工作。它将完美地发送消息。我的问题在于,假设从活动1开始打开活动2,然后从活动2开始打开活动3(依次调用活动2上的finish()
),然后按下活动3中的按钮,并向活动1发送相同的消息。当我试图让它发送结果代码“726”时,发送的结果代码是0
总之,我希望能够从其他未知级别的活动发送来自意图创建的活动的消息,但如果有意义,消息总是返回到相同的最低级别活动
如果这很难理解,我很抱歉,我希望有人能帮助我试试
我也会做这项工作
或者在许多层面上(活动)。我讨厌回答自己的问题,但不管怎样,我还是为其他任何寻求答案的人找到了答案: 来自主要活动
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();
}
}
来自2活动:
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");
}
}
public void onItemClick(){
Intent in = new Intent();
weaponID = position + 1;
in.putExtra("test", "test");
setResult(726,in);
finish();
}
来自3活动:
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");
}
}
public void onItemClick(){
Intent in = new Intent();
weaponID = position + 1;
in.putExtra("test", "test");
setResult(726,in);
finish();
}
回答你自己的问题绝对没有错!如果你自己解决它,你甚至会被鼓励去做。这就是你描述的活动吗?