簡體   English   中英

將數據從活動A傳遞到活動B

[英]Pass data from activity A to activity B

這是我想要做的:我有一個測驗,用戶必須回答三個問題。 在三個問題之后,有一個結果屏幕,用戶可以在其中看到自己的回答。

所以我想從活動A,活動B和活動C到結果活動的答案。 唯一的問題是,互聯網上的每個示例或教程都從活動A轉到活動B,然后又回到活動A。但是我不想回來,我想前進。 這有可能嗎?

在我的一個活動(活動A)中,我有此代碼。 將意圖數據發送到第二個問題,而不是如上所述的結果屏幕,僅用於測試onActivityResult()是否有效。 下面的代碼在if / else語句中,以檢查正確的答案。

QuestionOne活動

Intent i = new Intent(QuestionOne.this, QuestionTwo.class);
    i.putExtra("result", buttonText);
        setResult(RESULT_OK, i);
    startActivityForResult(i, CONTROLE_CODE);

Log.e("Send", "Send");

buttonText變量是用戶選擇的答案。 我已經檢查了此變量是否為null,但不是。 CONTROLE_CODE變量設置為0;

在我的QuestionTwoActivity(活動B)中,有這段代碼可以接收來自

QuestionTwoActivity:

@Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        // TODO Auto-generated method stub
        super.onActivityResult(requestCode, resultCode, data);
        if ((resultCode == RESULT_OK) && (requestCode == CONTROLE_CODE)) {
            retrieveData = data.getStringExtra("result");
            Log.e("Data", "Data: " + retrieveData);
        }

        Log.e("The answer is:", "The answer is" + retrieveData);
    }

retrieveData是一個String變量,並在我的Activity的頂部聲明。

Log.e("Send", "Send"); 我的LogCat中可以看到來自QuestionOneActivity的信息。 但是Log.e("Data", "Data: " + retrieveData); Log.e("The answer is:", "The answer is" + retrieveData); 我的LogCat中未顯示來自QuestionTwoActivity的內容。 因此它不會被調用。

也許這是一個重復的問題,但我找不到我的問題的答案。 那么,將數據從活動A,活動B和活動C發送到結果屏幕(活動D)的正確方法是什么?

提前致謝。

活動QuestionOne

Intent i = new Intent(QuestionOne.this, QuestionTwo.class);
i.putExtra("result", buttonText);
startActivity(i);

活動QuestionTwo

Intent intent = getIntent();
String text = intent.getStringExtra("result");

問題1

Intent i = new Intent(QuestionOne.this, QuestionTwo.class);
i.putExtra("answer1", buttonText);
startActivity(i);

在question2的oncreate函數中獲取先前的答案

String Answer1 =  getIntent().getStringExtra("answer1");
Intent i = new Intent(QuestionTwo.this, QuestionThree.class);
i.putExtra("answer1", Answer1 );
i.putExtra("answer2", buttonText);
startActivity(i);

依此類推,問第三個問題,然后得出結果

暫無
暫無

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

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