编程语言
首页 > 编程语言> > java-将消息从多个活动传递到主要活动

java-将消息从多个活动传递到主要活动

作者:互联网

很难解决我的问题,但是可以解决.

我有一个活动“活动1”,由此我可以打开三个活动“活动2”,“活动3”和“活动4”之一,我希望结果来自活动3.在这些活动的每一个中,我都可以创建一个新的意图来打开其他任何活动,依次在当前活动上调用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();
        }
    }

来自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();
}

标签:android-intent,android-activity,java,android
来源: https://codeday.me/bug/20191208/2093139.html