2014-04-28 70 views
0

之間的對象我做了三個活動的應用程序,它的工作原理是這樣的:傳遞活動

Activity A --> Activity B --> Activity C 

,並從活動Ç返回到活動A是這樣的:

Activity C --> Activity B --> Activity A 

我想在Activity CActivity A之間傳遞一個對象,但是當我按回按鈕或之後,所有活動的對象都被破壞,並且我無法接收到活動A上的對象。如何將Activity C中的對象傳遞給Activity A?我使用數據庫解決這個問題,當我在活動C中,我插入對象在表中,並使用活動A中的表獲取對象。但我正在尋找更容易的方法來解決它)

請指導我...

感謝

+0

而不是使用多個活動,你可以在活動中使用多個片段。 –

+0

我不認爲存在一個簡單的方法來做到這一點,無論如何,你可以嘗試在3個活動之間傳遞這個對象,當你從活動C返回時,你將它傳遞給B,B將它傳遞給A.或者,使用活動結果來完成...添加更多關於你想要做什麼的信息。 –

+0

你可以使用全局變量http://stackoverflow.com/questions/1944656/android-global-variable – Android

回答

1

如圖Activity C使用shared Preferences

SharedPreferences data = PreferenceManager.getDefaultSharedPreferences(getBaseContext()); 
data.edit().putString("somevalue", myvalue).commit(); 

,並要求其在Activity A爲:

SharedPreferences data = PreferenceManager.getDefaultSharedPreferences(getBaseContext()); 
String myval= data.getString("somevalue",""); 
+1

如何使用這個方法傳遞一個對象? – poursina

1

你可能在你的活動A和B覆蓋onActivityResult,所以將b只需要結果從C返回,並將其傳遞迴A

@Override 
public void onActivityResult(int requestCode, int resultCode, Intent data) { 
    super.onActivityResult(requestCode, resultCode, data); 
    switch(requestCode) { 
    case (A) : { 
     if (resultCode == Activity.RESULT_OK) { 
     // Extract the data returned from the Activity. 
     } 
     break; 
    } 
    } 
} 

而在B和C,你應該將對象傳遞迴調用活動:

Intent resultIntent = new Intent(); 
// add your object here to the resultIntent 
setResult(Activity.RESULT_OK, resultIntent); 
finish();