2013-01-10 191 views
-1

我想在我的android應用程序中的兩個活動之間傳遞數據,但是當我嘗試運行發送應用程序崩潰的數據的點擊方法。在Android活動之間傳遞數據

這是我的計算嘗試將其發送到另一個名爲result的活動的活動的代碼。我試圖發送的變量輸出是雙精度。

Intent myIntent = new Intent(BMIMetric.this, result.class); 
BMIMetric.this.startActivity(myIntent); 
myIntent.putExtra("key", output); 

然後在結果頁面上,我試圖把變量與此代碼

Intent myIntent = getIntent(); 
double output = (Double) getIntent().getExtras().get("Key"); 
+1

從CatLog中得知確切的錯誤是有幫助的,但是對於它的價值來說,在獲取它時大寫的「Key」和在設置它時小寫。不記得這是否會影響事情或不是,但它是一個開始的地方。 – Blumer

回答

4

首先,你有一個順序的問題(編輯代碼):

Intent myIntent = new Intent(BMIMetric.this, result.class); 
myIntent.putExtra("key", output); 
BMIMetric.this.startActivity(myIntent); 

您需要在開始新活動之前設定額外資訊。

然後在你的其他活動做:

Intent myIntent = getIntent(); 
double output = getDoubleExtra ("key", -1.0); 

getDoubleExtra()似乎是一個更合適,因爲你分配給原始數據類型。

另外,正如布魯默提到的,"key"有不同的拼寫。你需要使用相同的拼寫密鑰,這就是它的工作原理。否則,你提到了一些不同的東西,它不會被發現。

作爲使用getExtras()的補充 - 如果您使用的是getExtras().get()並且找不到密鑰,您將獲得null作爲回報。雖然Double S能夠自動盒/拆箱的今天,如果你這樣做

Double doubleObject = null; 
double d = doubleObject; 

你仍然會得到一個NullPointerException

相關問題