2013-08-01 2 views
2

두 개의 액티비티가있는 첫 번째 세부 액티비티와 두 번째 액티비티 페이지는 confirmationPage입니다. 첫 번째 페이지로 돌아 가면이 시나리오를 어떻게 처리해야합니까?액티비티간에 콜백 메커니즘을 구현하는 방법

조각을 사용하는 대신 활동간에 가능합니까? startActivityForResult(intent, requestCode)에 의한 결과에 대한

+2

'startActivityForResult();'를 사용하여 자녀의 'Activity' 응답을 부모에게 보냅니다. – hardartcore

답변

6

당신이에 startActivityForResult()를 사용할 필요를 다시 보내려면; 메서드를 호출합니다.

그리고 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

이 5 월 당신에게

도움이 하나입니다 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();