2012-07-08 30 views
2

我試圖做一個簡單的事情:從活動一通變量活動B.我有活性的這種方法:安卓:通過額外給意圖 - 不能得到什麼,我已經通過了

private void editAccount(CloudAccount account) { 
    Intent intent = new Intent(this, EditAccountActivity.class); 
    intent.putExtra("accountId", account.getId()); 
    this.showToast("ID passed: " + account.getId()); 
    startActivity(intent); 
} 

這段代碼吐司顯示「ID傳遞:1」。這是對的。現在 ,我開始活動B:

protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    Bundle extras = getIntent().getExtras(); 
    Toast.makeText(this, "ID received: " + extras.getString("accountId"), Toast.LENGTH_LONG).show(); 

此舉杯顯示 「ID獲得:空」。這是不正確的。如果我測試getInt(「accountId」) - 它返回0. 我的代碼有什麼問題?這似乎是很簡單,沒有錯的地方,但仍...

+0

這看起來確定..如果你第一次保存int然後顯示它會發生什麼? int value = extras.getInt(「accountId」); (this,「ID received:」+ String.valueOf(value),Toast.LENGTH_LONG).show();顯示結果如下: Toast.makeText – 2012-07-08 22:12:08

+1

'account.getId()'返回什麼類型? – Squonk 2012-07-08 22:13:32

+0

它很長:public long getId() – Camper 2012-07-10 11:15:53

回答

4

這實際上是個愚蠢的問題。我正在嘗試接收int,但是很長時間以來就是臨時演員。 getLong()運行良好。

+0

那麼你應該接受你自己的答案? – 2014-09-25 03:13:02

1

我想你想使用:

public int getIntExtra (String name, int defaultValue) 

或在情況下,你使用的是捆綁

public int getInt (String name) 
+0

@Camper在代碼的上下文中,可以使用'Integer.toString(extras.getInt(「accountId」))''。 – 2012-07-09 15:47:30

+0

我正在使用getInt()。它返回0,而應該是1. getString()返回null - 請參閱我原來的問題。這是不相關的,如果我使用getInt()或Integer.toString() - 問題是這個值沒有達到我的意圖,它丟失在某處:) – Camper 2012-07-10 11:19:31

+0

啊,在代碼中,它顯示爲getString(),但看來你已經解決了你自己的問題。 – Trickfire 2012-07-10 19:28:12

0

如果傳遞整數價值的活動,你必須得到其他意圖該值作爲

empid = Extras.getInt(String str); 

在你的情況,你必須使用作爲

protected void onCreate(Bundle savedInstanceState) { 
super.onCreate(savedInstanceState); 
Bundle extras = getIntent().getExtras(); 
System.out.println("Received value is "+extras.getInt("accountId")); 
Toast.makeText(this, "ID received: " + extras.getInt("accountId"), Toast.LENGTH_LONG).show(); 

現在,您可以檢查接收到的值logcat的。祝你好運

0

您可以使用SharedPreferences將數據從當前活動傳遞到下一個活動。你需要把一些代碼象下面這樣的活動A.

private void editAccount(CloudAccount account) { 
     SharedPreferences preferences = getSharedPreferences("Preferences", 0); 
     SharedPreferences.Editor editor = preferences.edit(); 
     Intent intent = new Intent(this, EditAccountActivity.class); 
     editor.putInt("accountId", account.getId()); editor.commit();    
     startActivity(intent); 
} 

之後,你需要把這個代碼在你的活動B從活動A.

SharedPreferences preferences; 
int id; 

preferences = getSharedPreferences("Preferences", 0); 

id = preferences.getString("accountId", 0); 

收到您的ID希望它的幫助。

相關問題