2014-02-19 4 views
0

나는 DrawerLayout이 포함 된 활동이 있습니다. 그 DrawerLayout에 대한 Fragments를 별도의 클래스에 정의했습니다. 다른 Fragment로 이동해야하는 Fragment 내에 버튼을 추가하려고합니다.Android Fragment 탐색 및 업데이트 DrawerLayout

FragmentManager fragmentManager = getFragmentManager(); 
fragmentManager.beginTransaction().replace(R.id.content_frame, new MyActivity()).commit(); 

작동하지만 DrawerLayout은 업데이트되지 않습니다. 제목은 새 Fragment와 일치하도록 업데이트해야하고 서랍이 열리면 이전 Fragment가 계속 선택됩니다.

조각에서 조각으로 이동하는 적절한 방법은 무엇입니까?

((HostingActivity) getActivity).mDrawerList 

당신이 그것에 모두 setItemChecked(position, true)setSelection(position)를 호출 할 수 있습니다이 방법을 :

+0

귀하의'MyActivity'는 조각을 확장? – nikis

+0

예, MyActivity extends Fragment – sworded

+0

Class Fragment를 호출하는 것은 매우 이상합니다. 그것은 다른 사람들을 혼란스럽게 할 수 있습니다. 그러나 질문에 더 가깝 습니다.이 자습서를 수행 했습니까? http://developer.android.com/training/implementing-navigation/nav-drawer.html? 'selectItem' 함수를 살펴보세요. 필요한 모든 것이 있습니다. – nikis

답변

0

루트 활동에 액세스하기 위해 Fragment 클래스의 onAttach를 오버로드했습니다. 이렇게하면 Fragment as a field에 콜백 인터페이스를 저장할 수있었습니다. MyActivity.java (A 조각)에서

@Override 
public void onAttach(Activity activity) { 
    super.onAttach(activity); 

    try { 
     fragmentNavigation = (IFragmentNavigation) activity; 
    } catch (ClassCastException e) { 
     throw new ClassCastException(activity.toString() + " must implement IFragmentNavigation"); 
    } 
} 
0

당신은 다음을 통해 액세스 할 수 있습니다, 당신의 HostingActivitymDrawerList 공개를 할 수 있습니다.

getActivity().getActionBar().setTitle("...."); 

을 아니면 방법 selectItem를 공개 할 수 있습니다 그리고 당신은 또한 호출하여 제목을 변경할 수 있습니다.