0
我創建了一個使用片段的導航抽屜。我有一個函數在點擊抽屜項目時改變片段。我有一些創建了一些片段。我想在按鈕單擊時調用當前片段中的另一個片段。但是當我點擊按鈕時,它實際上改變了片段,但我希望在調用片段時也要更改導航。請給我一些建議。從另一個片段調用片段時更改導航抽屜
我有兩個名爲HomeFragment和FindPeopleFragment的片段。在HomeFragment片段的按鈕調用FindPeopleFragment
這裏是我的按鈕單擊事件寫在HomeFragment
View rootView = inflater.inflate(R.layout.fragment_home, container, false);
Button btn = (Button) rootView.findViewById(R.id.find_people);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Fragment fragment = new FindPeopleFragment();
if (fragment != null) {
FragmentManager fragmentManager = getFragmentManager();
fragmentManager.beginTransaction()
.replace(R.id.frame_container, fragment).commit();
}
}
});
這裏是代碼改變片段MainActivity
Fragment fragment = null;
switch (position) {
case 0:
fragment = new HomeFragment();
break;
case 1:
fragment = new FindPeopleFragment();
break;
case 2:
fragment = new PhotosFragment();
break;
case 3:
fragment = new CommunityFragment();
break;
default:
break;
}
if (fragment != null) {
FragmentManager fragmentManager = getFragmentManager();
fragmentManager.beginTransaction()
.replace(R.id.frame_container, fragment).commit();
// update selected item and title, then close the drawer
mDrawerList.setItemChecked(position, true);
mDrawerList.setSelection(position);
setTitle(navMenuTitles[position]);
mDrawerLayout.closeDrawer(mDrawerList);
} else {
// error in creating fragment
Log.e("MainActivity", "Error in creating fragment");
}
下面是代碼編寫的onCreate MainActivity
mDrawerList.setOnItemClickListener(new SlideMenuClickListener());
// setting the nav drawer list adapter
adapter = new NavDrawerListAdapter(getApplicationContext(),
navDrawerItems);
mDrawerList.setAdapter(adapter);
這是我正在做同樣的事情的代碼鏈接link
你是指更換導航抽屜是什麼意思?你想要改變另一個導航抽屜嗎?如果是這樣,這可能是不可能的。您可以爲不同的活動提供不同的導航抽屜,但不能針對同一活動的不同片段。 – Apurva 2015-03-19 07:17:54
@Apurva當我從抽屜列表中選擇FindPeopleFragment時,它顯示我已選中。但是當我從HomeFragment調用它時,那麼抽屜表仍然會顯示我的HomeFragment爲選中狀態。我希望在我從HomeFragment中調用FindPeople片段時進行更新。 – 2015-03-19 07:24:05