2014-07-08 64 views
0

我發送一個隱式意圖從一個活動到另一個,我想發送一些字符串變量。我這樣做是爲了隱含意圖,因爲我希望在多個項目中使用活動B,它是庫項目的一部分。如何以隱式意圖接收發送和接收多個數據?

我有意向合作得很好,但在活動B.額外的數據不被讀取

這是我在練習的代碼創建的意圖:

Intent intent = new Intent(this, ShareResultsActivity.class); 
    intent.putExtra(EMAIL_SUBJECT, "Results");//String 
    intent.putExtra(RESULTS_SAVENAME, saveName);//String 
    intent.putExtra(RESULTS_BODY, body);//String 
    intent.putExtra(WITH_SAVE_BUTTON, withSaveButton);//Boolean 
    startActivity(intent); 

而且在活動B:

Bundle extras = getIntent().getExtras(); 

    Boolean withSaveButton = true; 

    if(extras != null){ 
     emailSubject = extras.getString("EMAIL_SUBJECT"); 
     resultsSaveName = extras.getString("RESULTS_SAVENAME"); 
     resultsBody = extras.getString("RESULTS_BODY"); 
     withSaveButton = extras.getBoolean("WITH_SAVE_BUTTON", true); 
    } 

這不起作用,字符串變量爲空。

我也試圖做到這一點在明確意圖臨危數據的方式:

Intent intent = getIntent(); 

    emailSubject = intent.getStringExtra("EMAIL_SUBJECT"); 
    resultsSaveName = intent.getStringExtra("RESULTS_SAVENAME"); 
    resultsBody = intent.getStringExtra("RESULTS_BODY"); 
    Boolean withSaveButton = intent.getBooleanExtra("WITH_SAVE_BUTTON", true); 

但是,這也不行。

我可以讓它工作的唯一方法是如果我引用getStringExtra中的發送Activity,但我不能這樣做,因爲它應該是一個庫類。

任何人都可以對此有所瞭解嗎?還是我以錯誤的方式解決這個問題?

+0

什麼是EMAIL_SUBJECT變量的值? – penkzhou

+0

我是一個白癡,我的活動B應該尋找同樣的價值。如果你給我一個答案,我會接受它,謝謝! – Leon

+0

我的假設如何? – penkzhou

回答

2

我假設你這樣的代碼:

final static String EMAIL_SUBJECT = "email_subject"; 
// RESULTS_SAVENAME and others are the same style. 
Intent intent = new Intent(this, ShareResultsActivity.class); 
intent.putExtra(EMAIL_SUBJECT, "Results");//String 
startActivity(intent); 

然後在另一個活動:

Intent intent = getIntent(); 
emailSubject = intent.getStringExtra("email_subject"); 
// or this 
// emailSubject = intent.getStringExtra(EMAIL_SUBJECT); 
0

請利用關鍵的,它應該是在這兩個活動一樣。我清楚地看到兩個活動中鍵名的命名約定有所不同。如果鍵名相同,則數據不應該通過。