2012-09-01 11 views
0

MainActivity가 있으며 ListFragment 및 framelayout이 포함되어 있으므로 항목 클릭시 목록에서 단편을 변경할 수 있습니다.단편 기존 단편 교체

내가 Fragment1의 버튼 클릭에 새로운 Fragment2으로 기존 Fragment1을 대체하는 문제가, Fragment2Fragment1 교체해야하고, 왼쪽에 같은 ListFragment을해야하고, 다시 버튼을 제대로 처리해야한다,이 때 의미 나는 Fragment2에 있으며 뒤로 버튼을 누르면 동일한 ListFragment와 Fragment1이 표시됩니다.

+0

보여 당신의 코드 그래서 우리는 당신이 지금까지 시도한 것을 알 것입니다. –

답변

7

두 조각을 전환하려면 .replace을 사용해야하며 다시 불러올 수 있도록 원래 스택을 추가해야합니다. 그런 식으로 작동하려면 뒤로 키 작업을 재정의해야합니다.

menu = new MenuFragment_Main(); // instantiate fragment 
getSupportFragmentManager().beginTransaction().replace(R.id.pane, menu).commit(); // display fragment 

새로운 조각을 위해 그것을 교환하고, 교환에 추가하려면 첫 번째 조각을 표시하려면

: 그것은 (지원 라이브러리를 사용하여, 내 프로젝트 중 하나에서 사용하는 코드)과 같이 보일 것입니다 가기 backstack :

ListFragment_ShopListItem shoplist = new ListFragment_ShopListItem(); // instantiate fragment 
getSupportFragmentManager().beginTransaction().replace(R.id.pane, shoplist).addToBackStack(null).commit(); // replace original fragment with new fragment, add original to backstack 

그리고 이전의 단편으로 돌아갑니다 뒤로 키 오버라이드 (override) :

public void onBackPressed() { 
    FragmentManager fm = getActivity().getSupportFragmentManager(); 
    fm.popBackStack(); 
    return; 
} 
+0

@ 바락 감사합니다. 나를 위해 그 일하는 벌금 ........ – Balaji