簡體   English   中英

從多個活動返回主活動的數據

[英]Data return from Multiple Activities to Main Activity

每個人。 我已經開始編寫(1 個月大)Android 應用程序,我對這些東西很陌生。

我有一個活動 X。在那個活動 X 上,我有四個不同的按鈕調用四個不同的活動。 在這三個活動中,我有按鈕,並且在按下按鈕后將數據返回到活動 X。 此外,在活動 X 上,我可能不會調用所有三個活動。 我可能只打電話給 1,3 或只打電話給 2,3。 我看了很多,但我找不到我要找的東西。

編輯:當我把finish(); 對於活動 1、2、3,我可以調用其中一個活動(假設活動一被調用)並能夠獲取數據,並返回活動 X,但是當我開始調用另一個活動(假設活動 2 被調用)時,我可以go 參加此活動,但我無法從中返回,因為它確實知道返回的位置。

這就是我所尋求的:

活動X->第一個活動->將data1返回給X

活動X->第二個活動->將data2返回給X

活動 X-> 第三個活動-> 將 data3 返回到 X

活動 X-> 將 data1 + data2 +data3 發送到第 4 個活動

我在onClick方法下像這樣在Activity X上開始了我的三個活動( data_global在 Activity X 類上是全局的)

case R.id.btn1:
       Intent i = new Intent(this, Activity1.class);
       startActivityForResult(i, 200);
       break;
case R.id.btn2:
       i = new Intent(this, Activity2.class);
       startActivityForResult(i, 201);
       break;
case R.id.btn3:
       i = new Intent(this, Activity3.class);
       startActivityForResult(i, 202);
       break;
case R.id.btn4:
       i = new Intent(this, Activity4.class);
       i.putExtra("Extra", data_global);
       startActivity(i);
       break;

我在onActivityResult方法下的Activity X上從這里獲取數據:

switch (requestCode) {
        case (200): {
            if (resultCode == Activity.RESULT_OK) {
                if (data.getStringExtra("Extra1").length() != 0) {
                    data_global += data.getStringExtra("Extra1");
                }
            }
            break;
        }
        case (201): {
            if (resultCode == Activity.RESULT_OK) {
                if (data.getStringExtra("Extra2").length() != 0) {
                    data_global += data.getStringExtra("Extra2");
                }
            }
            break;
        }
        case (202): {
            if (resultCode == Activity.RESULT_OK) {
                if (data.getStringExtra("Extra3").length() != 0) {
                    data_global += data.getStringExtra("Extra3");
                }
            }
            break;
        }

並且任何活動 1 或 2 或 3 代碼都是這樣的:( X在 Extra 的末尾指的是 1、2、3)

case R.id.btnSave:
            Intent resultIntent = new Intent();
            resultIntent.putExtra("ExtraX", "name");
            setResult(Activity.RESULT_OK, resultIntent);
            finish();
            break;

我該如何解決我的問題? 非常感謝。

您需要在每個活動的意圖中指定當前和目標活動,如下所示

case R.id.btnSave:
    Intent resultIntent = new Intent(Activity1.this, MainActivity.class);

並為其他活動重復此操作。

暫無
暫無

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

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