2012-12-02 34 views
0

如何從2 Activities(傳遞數據)接收值?我可以從2個具有SharedPreferences的活動中接收價值數據嗎?

我有3項活動,ActivityOne,ActivityTwo,ActivityThree。我想發送從ActivityOneActivityThreeActivityTwoActivityThree的值(傳遞數據)。

ActivityThree所有數據不會被破壞,所以所有值數據從ActivityOneActivityTwo任何ActivityThree。來自ActivityOne的數據在ActivityThree中保存臨時變量,並且來自ActivityTwo的數據也在ActivityThree中保存臨時變量。所以,我可以展示ActivityOneActivityThree一起ActivityTwo所有值數據,

我可以SharedPreferences?如果是的話,任何人都可以提供一個例子嗎?

+0

總是一個選項:http://developer.android.com/guide/topics/data/data-storage.html#pref。但從它的外觀來看,似乎你正在尋找「intents」的工作:http://www.vogella.com/articles/AndroidIntent/article.html – mango

回答

1

使用SharedPreferences不是一個壞主意,但您的要求是暫時的。所以你使用Bundle Extras更好。拿Bundle對象,並通過綁定將所有第一個活動變量傳遞給第二個Activity。從意圖中檢索包,並將第二個活動變量放入同一個包中,並將其傳遞給第三個活動。在第三個活動中檢索包並使用它們。我希望這能幫到您。

Bundle b = new Bundle(); 
b.putString("name","value"); 
b.putInt("name1",9); 
Intent i = new Intent(FirstActivity.this, SecondActivity.class); 
i.putExtras("bundle",b); 
startActivity(i); 

檢索在第二個活動

Bundle b = getIntent().getBundleExtra("bundle"): 
b.putString("namein2",value); 
b.putInt("nameIntin2",8); 
Intent i = new Intent(SecondActivity.this,ThirdActivity.class); 
i.putExtras("bundle",b); 
startActivity(i); 

檢索包,如果您使用的共享偏好使用它在第三個活動

+0

但在Activity1中填充值繼續到Activity2,我想填寫值免費,首先Activity1或Activity2沒有問題, – pwcahyo

+0

嘿,因爲你的問題上述答案是正確的,我不明白你的意見 – TNR

+0

我的意思是,我填寫從Activity1或Activity2的值是免費的,我可以選擇第一個我正在填寫Activity1或Activity2。因爲我讓菜單轉到Activity1或Activity2。或Activity3顯示值 對不起,我英語不好。 – pwcahyo

0

//Get shared preference 
    SharedPreferences prefs = this.getSharedPreferences("ANY_NAME_TO_IDENTIFY", Context.MODE_PRIVATE); 

    //To set value 
    pref.edit().putString("NAME", "Simone").commit(); 
    pref.putLong("NUMBER", new Date().getTime()); 

    //To get value 

    pref.getString("NAME", "Put_any_default_value"); 
    pref.getLong("NUMBER", new Date().getTime()); 
當然共享偏好的
相關問題