2014-11-29 3 views
0

나는 main_activity 호출 활동을 가지고있다. B 활동은 몇 가지를 main_activity에서 업데이트하고, 몇 가지를 업데이트한다. B 버튼을 다시 누르면 main_activity로 되돌아갑니다. 나는 활동 B의 내용을 그대로 유지하지만 main_activity (재 작성)는 유지하지 못했다. 나는 this SO question을 언급했다.내용을 손상시키지 않으면 서 2 가지 활동을 전환하는 방법은 무엇입니까?

내가 원하는 것은 main_activity와 activity B의 내용을 그대로 유지하는 것입니다. 어떻게하면 될까요?

Intent mIntent = new Intent(mainActivity.this, Activity_B.class); 
//startActivityForResult(mIntent); 
mIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
mIntent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP); 
startActivity(mIntent); 

활동-B 백 프레스 :

@Override 
public void onBackPressed() { 
    Intent mIntent = new Intent(Activity_B.this, mainActivity.class); 
    mIntent.addFlags(Intent.FLAG_ACTIVITY_PREVIOUS_IS_TOP); 
    startActivity(mIntent); 
} 
+0

@artm. 무엇을 편집 했습니까? 나는 어떤 변화도 보지 못했다. –

+0

"편집 된 n 분 전"링크를 클릭하면 내가 변경 한 내용이 표시됩니다. 단순히 공백을 제거하십시오. – artm

+0

코드에서 addFlags를 제거해야한다고 생각합니다 –

답변

1

을 당신이에 startActivityForResult는 startActivity를의 insted 시도해야한다고 생각

main_activity 선택 메뉴에서 활동 B 호출

내 코드입니다 이 개념을 이해하는 데 도움이되는 링크가 있습니다. 나는 이것이 당신이 SharedPreferences를 사용 ActivityB에 업데이트 할 MainActivity의 내용을 저장하고 MainActivitySharedPreferences와 디스플레이에서 값을 얻을 수 있습니다 당신에게

startActivityForResult

+0

하지만 결과를 main으로 다시 전달하려면 activity_B를 완료해야합니다. 그건 내가 원하는 것이 아니야. 어쨌든 고마워요 ... –

+0

괜찮 으면 의도에 몇 가지 추가 값을 넣어야합니다. –

0

도움이 될 것입니다 생각합니다.

//Save something in Activity B 
SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(this); 
SharedPreferences.Editor e = settings.edit(); 

e.putString("variableName", "a string value"); 

e.commit(); 

//Retrieve in MainActivity 
String mContent = settings.getString("variableName", ""); 

SharedPreferences은 앱을 종료해도 값을 저장합니다. 다른 클래스에서 SharedPreferences에 저장된 값에 액세스 할 수도 있습니다.

0

는 U는 ** ** (의도하여 주요 활동을 업데이트하도록 설정 결과에 대한) 활동 B에

Intent mIntent = new Intent(mainActivity.this, Activity_B.class); 
    startActivityForResult(mIntent,PICK_CONTACT_REQUEST(int)); 

** 다음과 같이 주요 활동에서 활동을 시작

@Override public void onBackPressed() { 
Intent mIntent = new Intent(); 
    mIntent.putExtra("some_key",someData); 
    mIntent.putExtra("Some_mey2",someData2); 
setResult(RESULT_OK,mIntent); 
} 

필요 main_activity **에서 main_activity의 결과를 처리하고 main_activity **를 업데이트 함 '

@Override 
protected void onActivityResult(int. requestCode, int resultCode, Intent data) { 
    // Check which request we're  responding to 
    if (requestCode == PICK_CONTACT_REQUEST) {    // Make sure the request was  successful 
    if (resultCode == RESULT_OK) { 
someTextfield.settext(data.getStringExtra("Some_key"); 
    } 
    } 
} 
관련 문제