[Android] 안드로이드 Fragment에서 뒤로가기 버튼 적용하기 onBackPressedListener

모바일앱을 개발하던 중 Fragment에서 뒤로가기 버튼을 누를 시에 바로 어플이 종료되는 문제를 발견하였다.

버튼을 클릭하여 전환된 Fragment에서 뒤로가기 버튼을 눌렀을 시 다시 MainFragment로 돌아오게 하는 방법을 알아보았다.



onBackPressedListener 구현


먼저 onBackPressedListener라는 인터페이스를 만들어준다.

onBackPressedListener.java
public interface onBackPressedListener {
    void onBackPressed();
}

위와 같이 인터페이스를 먼저 설정해주면 이제 다른 Fragment에 적용할 수 있게된다.



CoffeeFragment.java
public class CoffeeFragment extends Fragment implements onBackPressedListener {
 ~~

본인은 CoffeeFragment라 작성했지만 각자 onBackPressedListener를 적용할 Fragment에 적용하면 된다.

먼저 기존에 만든 interface를 Fragment에 implements 해준다.



그 다음에는 onBackPressed()를 override하여 프래그먼트 종료 코드를 실행해주면 된다.

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

    private void goToMain() {((MainActivity)getActivity()).replace(MainFragment.newInstance(res));
    }

위와 같이 goToMain() 부분에 뒤로가기 버튼을 눌렀을 때 실행할 이벤트를 입력해주면 된다.

본인은 뒤로가기 버튼을 눌렀을시에 MainFragment로 이동하게 설정하기 위해 위와 같은 코드를 작성하였다.

newInstance나 res에 대한 설정은 전에 작성하였던 포스팅을 보면 알 수 있다.

이전 포스팅



실행결과


정상적으로 뒤로가기 버튼이 적용된 것을 볼 수 있다.

Categories:

Updated: