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