[英]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.