簡體   English   中英

將來自多個活動的消息傳遞到主要活動

[英]Passing messages from multiple activities to main activity

我很難解決我的問題,但現在就去了。

我有一個活動活動1 ,從中我可以打開活動2活動3活動4三個活動中的一個,其中我希望結果來自活動3 在每個活動中,我可以創建一個新的意圖來打開任何其他活動,然后在當前活動上調用finish()

我有代碼工作,當我從活動1打開活動3 ,然后按按鈕完成活動3它完美地發送消息。 我的問題在於從活動1打開活動2然后從活動2打開活動3 (依次在活動2上調用finish() )然后按活動3中的按鈕並將相同的消息發送到活動1 目前發送的結果代碼為0,當我試圖讓它發送結果代碼'726'時。

總而言之,我希望能夠從一個來自未知級別的其他活動的意圖創建的活動發送消息,但是如果有意義的話,該消息總是返回到相同的最低級別活動。

如果這很難理解我很抱歉,我希望有人可以幫助我

我討厭回答我自己的問題,但無論如何我都想到了其他尋找答案的人:

來自主要活動

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

試試觀察者

Singleton也會做這項工作。

或者在許多級別(活動)上的startActivityForResult

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM