UFO ET IT

Android-뒤로 버튼 시뮬레이션

ufoet 2020. 11. 12. 20:41
반응형

Android-뒤로 버튼 시뮬레이션


앱에서 버튼을 누르면 마지막 활동으로 돌아 가야합니다.

어떤 아이디어?


finish()종료하려는 활동에서 호출 하면이를 처리해야합니다.

수년 후 편집 : 이것은 여전히 ​​작동하지만 약간 무거운 접근 방식입니다. 내가 처음에 이것을 게시했을 때 Fragments존재하지 않았고 (여러 주석가가 지적했듯이) 이것은 Fragments관련 이있을 때 완전히 동일한 방식으로 작동하지 않습니다 . 이제 더 나은 접근 방식이 있습니다.Fragments.


기록 용 : 설명 된 메서드는 경우에 따라 뒤로 버튼과 동일하지 않지만 다음을 호출 할 수 있습니다.

this.onBackPressed();

또는

getActivity().onBackPressed();

당신이 exaclty를 달성하기 위해 조각에 있다면 동일한 행동.


조각을 사용할 때 :

getFragmentManager().popBackStack();

또는

getSupportFragmentManager().popBackStack();

android.support.v4.app 패키지를 사용하는 경우


이는 동일한 프래그먼트가 때때로 활동의 유일한 프래그먼트 일 수 있고 때로는 두 개의 프래그먼트가 동시에 표시되는 태블릿과 같이 다중 프래그먼트 활동의 일부일 수있는 상황을위한 것입니다.

/**
 * Method that can be used by a fragment that has been started by MainFragment to terminate
 * itself. There is some controversy as to whether a fragment should remove itself from the back
 * stack, or if that is a violation of the Android design specs for fragments. See here:
 * http://stackoverflow.com/questions/5901298/how-to-get-a-fragment-to-remove-itself-i-e-its-equivalent-of-finish
 */
public static void fragmentImplementCancel(Fragment fragment) {

    FragmentActivity fragmentActivity = fragment.getActivity();
    FragmentManager fragmentManager = fragmentActivity.getSupportFragmentManager();

    if (fragmentManager.getBackStackEntryCount() == 1) {
        fragmentManager.popBackStack();
    }
    else {
        fragmentActivity.finish();
    }
}

예를 들어이 코드를 호출하여 취소 버튼을 구현할 수 있습니다.

    if (theButton.getId() == R.id.btnStatusCancel) {
        StaticMethods.fragmentImplementCancel(this);
    }

뒤로 버튼을 누를 때 위로 버튼 통화를 스푸핑 할 수 있습니다.

@Override
public void onBackPressed() {
    onNavigateUp();
}

참고 URL : https://stackoverflow.com/questions/2717954/android-simulate-back-button

반응형