2014-09-05 3 views
0

조각 A >> B >> C >> D >> E가 있습니다. 나는에서 통과 할 때 .... 내가 C와에 B에 대해 다음 코드조각에서 트랜잭션을 만드는 방법은 무엇입니까?

Fragment fragment = new B(); 
FragmentManager fragmentManager = ((FragmentActivity)activity).getSupportFragmentManager(); 
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction(); 
fragmentTransaction.replace(R.id.frame_container, fragment, "B").addToBackStack("A").commit(); 

유사를 사용하여 B로

어떻게 C.에 가지 않고 직접에 D에서 통과 할 수 있습니까?

어떤 도움이 이해할 수있을 것이다하시기 바랍니다. 다른 대답은 혼란을주는 방법입니다. 아무 것도 나를 위해 일하고있다.

+0

정확히 무엇이 문제입니까? 단순히'new A()'를 만들고 D를 백 스택에 추가하는 것을 막는 것은 무엇입니까? – cjbrooks12

답변

0
Use this 


Fragment fragment = new B(); 
FragmentManager fragmentManager = getFragmentManager(); 
fragmentManager.beginTransaction().replace(R.id. frame_container, fragment).commit(); 




In D 

@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) { 
    if (keyCode == KeyEvent.KEYCODE_BACK) { 
     Fragment fragment = new D(); 
     FragmentManager fragmentManager = getFragmentManager(); 
     fragmentManager.beginTransaction().replace(R.id. frame_container, fragment).commit(); 
    } 
    return super.onKeyDown(keyCode, event); 
} 
+0

CheckoutLoggedIn 유형의 onKeyDown (int, KeyEvent) 메서드는 슈퍼 유형 메서드를 재정의하거나 구현해야합니다. >>> ERROR –

+0

죄송합니다. 귀하의 의견을 알 수 없으니 간략하게 답변 해 주시겠습니까? –

관련 문제