2013-08-01 14 views
2

我有2個活動第一個活動細節和第二個活動頁面是confirmationPage,一旦我確認它應該回到第一個頁面,我應該如何處理這種情況?如何實現Activites之間的回撥機制

是否可以在活動之間而不是使用碎片?

+2

使用'startActivityForResult();'將響應從您的孩子'Activity'發送給它的父親。 – hardartcore

回答

6

你必須使用startActivityForResult();方法當你啓動secondActivity。

而且你還必須實現onActivityResult()方法。

這裏是第一個活動的代碼..

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    // TODO Auto-generated method stub 
    super.onActivityResult(requestCode, resultCode, data); 

    if (resultCode == 1) { 
     Bundle extra = data.getExtras(); 
     String ID = extra.getString("NameKey").trim(); 
     // do your code here. 

    } 
} 

碼在第二活動..

加上確認點擊按鈕的代碼。

Intent i = new Intent(); 
    Bundle extra = new Bundle(); 
    extra.putString("NameKey", KeyValue); 

    i.putExtras(extra); 
    setResult(1, i); 
    finish(); 
1

我相信調用完成()是向後的活動出來的最簡單的方法。它應該返回到前一個類似於如果你點擊後退按鈕。

編輯:雖然,正如Sirlate所述,但如果您希望返回數據,startActivityForResult可能是您最好的選擇。

3

這可能有助於你

這一個是FirstActivity

Intent i = new Intent(this, SecondActivity.class); 
startActivityForResult(i, 1); 

如:與secondActivity如果要發回數據

Intent returnIntent = new Intent(); 
returnIntent.putExtra("result",result); 
setResult(RESULT_OK,returnIntent);  
finish();