[android] 안드로이드에서 활동을 닫고 이전 활동으로 돌아가는 방법

주요 활동이 있는데 버튼을 클릭하고 새로운 활동을 시작하면 다음 코드를 사용했습니다.

Intent intent = new Intent(this, SettingsActivity.class);
startActivity(intent);

위의 코드는 주요 활동에서 실행되었습니다.

이제 메인 액티비티에 의해 호출되는 새로운 액티비티에는 뒤로 버튼이 있습니다. 이 뒤로 버튼을 클릭하면 새 활동을 닫고 원래의 기본 활동으로 돌아 가야합니다.

나는 전화를 시도 super.finish()하고 그냥finish() (새로운 활동에서) 내 응용 프로그램을 닫습니다 (주 활동 포함).

현재 포커스가있는 활동을 닫은 다음 주 활동으로 돌아가려면 어떻게해야합니까?

편집

휴대 전화의 뒤로 버튼도 전체 앱을 닫았다는 사실 때문에 두 번째 활동을 잘못 시작했다고 생각하게됩니까?


알았어

동일한 매니페스트 코드와 동일한 코드를 사용하여 활동을 시작하는 설정 활동을 만들었습니다.

뒤로 버튼을 누를 때 활동 설정의 경우 기본 활동으로 돌아갑니다.

주요 질문에서 위에서 언급 한 활동으로 단순히 전체 앱을 종료합니다.

따라서 문제는 활동을 끝내는 코드가 아니라 활동 자체 인 것처럼 보입니다.



답변

시작하기 전에 finish()메소드를 호출한다고 생각합니다.MainActivitySettingsActivity .

설명한 시나리오는 다음 두 가지 방법으로 발생합니다.

어느 한 쪽

당신은 설정 android:noHistory = "true"을위한 MainActivity내부 AndroidManifest.xml원인 MainActivityfinish BACK 키를 누르면 자동으로.

또는

‘SettingsActivity’로 전환하기 전에을 (를) 호출 finish()하여 종료합니다 MainActivity. 뒤로 가기 버튼을 누르면 다른 활동이 스택에 사전 설정되어 있지 않기 때문에 기본 화면으로 돌아갑니다.


답변

현재 활동에서 finish ()를 호출하여 이전 활동으로 돌아갈 수 있습니다. finish () 호출 후 모든 코드가 실행됩니다. finish ()를 호출 한 후 리턴하여이 문제를 해결할 수 있습니다.

활동 1로 결과를 리턴하려면 활동 2를 시작할 때 다음이 필요합니다.

startActivityForResults(myIntent, MY_REQUEST_CODE);

호출 된 활동 내에서 onCreate () 매개 변수에서 Intent를 얻거나 사용할 수 있습니다.

getIntent();

결과를 활동 1로 리턴하고 활동 2에서 결과를 설정하려면

setResult(Activity.RESULT_OK, MyIntentToReturn);

돌아올 의사가 없다면 그냥 말해

setResult(Activity.RESULT_OK);

활동에 나쁜 결과가있는 경우 Activity.RESULT_CANCELED를 사용할 수 있습니다 (기본적으로 사용됨). 그런 다음 활동 하나에서

onActivityResult(int requestCode, int resultCode, Intent data) {
    // Handle the logic for the requestCode, resultCode and data returned...
}

활동 2를 끝내려면 이미 설정된 결과와 함께 finish ()와 동일한 메소드를 사용하십시오.


답변

버튼을 클릭하면 다음과 같이 전화를 걸 수 있습니다.

super.onBackPressed();


답변

조각을 사용한다면 u는

getActivity().onBackPressed();

단일 활동을 사용하면 u를 사용할 수 있습니다.

finish();


답변

대신이 코드를 사용해보십시오 finish:

onBackPressed();


답변

당신은 이것을 너무 어렵게 만들고 있습니다. 내가하려는 일을 올바르게 이해하면 내장 된 ‘뒤로’버튼과 Android 자체가 모든 작업을 수행합니다 : http://developer.android.com/guide/components/tasks-and-back- stack.html

또한 맞춤 ‘뒤로’버튼을 구현하면 핵심 앱 품질 가이드 라인 UX-N1 ( http://developer.android.com/distribute/googleplay/quality/core.html)에 위배됩니다


답변

Button edit = (Button) view.findViewById(R.id.yourButton);
edit.setOnClickListener(new OnClickListener() {

    @Override
    public void onClick(View view) {
        Intent intent = new Intent(this, YourMainActivity.class);
        startActivity(intent);
        finish();
    }
});