2013-05-27 113 views
0

我遇到問題,如此處所述。我有一個Class A,ClassB。兩者都有Intent s導航到Class C。現在,我想知道從哪個class我已導航到Class C,以便我將導航到前一個屏幕A or B。調用finish()Class C doesnt幫助我,因爲我需要更新Class A和B類數據不同。任何人都可以幫助我。如何在這裏使用意圖?我能知道從哪個班級導航到Class CAndroid - 導航到前一屏幕

回答

1

在類A和B的意圖,把參數像一個布爾「isclassA」,並在其上的測試就知道了。 在CLASSE A的意圖:

intent.putExtra("isfromclassA",true); 

類B的意圖:

intent.putExtra("isfromclassA",false); 

爲此在C類:

boolean isfromclassA = intent.getBoolExtra("isfromclassA"); 
+0

這很簡單...我已經完成了你建議的方式......謝謝 –

2

您應該使用startActivityForResult並覆蓋onActivityResult回調。通過這種方式,您可以安全地更新您的數據,而無需知道您來自哪個活動。

public class A extends Activity { 
private final static int REQUEST_CODE= 1000; 
public void onCreate(BUndle b) { 
... 
Intent intent = new Intent(this, C.class); 
startActivityForResult(intent, REQUEST_CODE); 
} 

@override 
void onActivityResult(int requestCode, int resultCode, Intent data) { 
     // here through data you will receive new data 
} 

} 

public class C extends Activity { 
    public void onCreate(BUndle b) { 
    // modify same data 
    Intent intent = new Intent(); 

    // pute data inside intent 
    setResult(Activity.RESULT_OK, intent); 
    finish(); 
} 
} 
+0

u能請幫我一個樣品? –

+0

@Aʌɐpɥɐuı:看看'http:// stackoverflow.com/questions/10407159/android-how-to-manage-start-activity-for-result' –