주요 활동이 있는데 버튼을 클릭하고 새로운 활동을 시작하면 다음 코드를 사용했습니다.
Intent intent = new Intent(this, SettingsActivity.class);
startActivity(intent);
위의 코드는 주요 활동에서 실행되었습니다.
이제 메인 액티비티에 의해 호출되는 새로운 액티비티에는 뒤로 버튼이 있습니다. 이 뒤로 버튼을 클릭하면 새 활동을 닫고 원래의 기본 활동으로 돌아 가야합니다.
나는 전화를 시도 super.finish()
하고 그냥finish()
(새로운 활동에서) 내 응용 프로그램을 닫습니다 (주 활동 포함).
현재 포커스가있는 활동을 닫은 다음 주 활동으로 돌아가려면 어떻게해야합니까?
편집
휴대 전화의 뒤로 버튼도 전체 앱을 닫았다는 사실 때문에 두 번째 활동을 잘못 시작했다고 생각하게됩니까?
알았어
동일한 매니페스트 코드와 동일한 코드를 사용하여 활동을 시작하는 설정 활동을 만들었습니다.
뒤로 버튼을 누를 때 활동 설정의 경우 기본 활동으로 돌아갑니다.
주요 질문에서 위에서 언급 한 활동으로 단순히 전체 앱을 종료합니다.
따라서 문제는 활동을 끝내는 코드가 아니라 활동 자체 인 것처럼 보입니다.
답변
시작하기 전에 finish()
메소드를 호출한다고 생각합니다.MainActivity
SettingsActivity
.
설명한 시나리오는 다음 두 가지 방법으로 발생합니다.
어느 한 쪽
당신은 설정 android:noHistory = "true"
을위한 MainActivity
내부 AndroidManifest.xml
원인 MainActivity
에finish
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();
}
});