![](/img/trans.png)
[英]How to switch between Fragments in default Android Studio Navigation Drawer
[英]Switch Fragment with default Android Studio navigation drawer
我在Android Studio中实现导航抽屉时有点迷失。 onCreate方法调用PlaceholderFragment
类,我真的不明白它是什么。
但无论如何,我应该在哪里实现我的onItemClickListener
根据导航抽屉中选择的项目显示不同的fragments
?
这是我目前的PlaceholderFragment:
public static class PlaceholderFragment extends Fragment {
private ListView listView;
private CustomAdapter expenseAdapter;
public PlaceholderFragment() {
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_main, container, false);
expenseAdapter = new CustomAdapter(getActivity());
listView = (ListView) rootView.findViewById(R.id.lvExpense);
listView.setAdapter(expenseAdapter);
expenseAdapter.loadObjects();
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int position, long l) {
String expense = expenseAdapter.getItem(position).get("title").toString();
Toast.makeText(getActivity(), expense, Toast.LENGTH_SHORT).show();
}
});
return rootView;
}
}
PS:类中的onItemClickListener
用于另一个ListView
,它不是导航抽屉中的那个。 基本上我正在使用parse.com并使用db中的项填充ListView
。
谢谢。
编辑:我终于在onNavigationDrawerItemSelected
使用此代码:
Fragment fragment = null;
switch (position) {
case 0:
fragment = new HomeFragment();
break;
case 1:
fragment = new SearchFragment();
break;
default:
break;
}
if (fragment != null) {
FragmentManager fragmentManager = getSupportFragmentManager();
fragmentManager.beginTransaction()
.replace(R.id.container, fragment).commit();
}
在fragment = new HomeFragment();
,android studio告诉我需要android.support.v4.app.fragment。 这是为什么 ?
(如果你没有这样做):在AndroidStudio中,最好使用导航抽屉生成示例活动(Alt +插入 - >活动 - >导航抽屉活动(在Android Studio 0.8。+上))您将获得活动使用一些drawable托管NavigationDrawerFragment。
在NavigationDrawerFragment onCreateView
您填充要在抽屉中显示的列表项,并且活动将使用方法onNavigationDrawerItemSelected(int position)
自动实现NavigationDrawerFragment.NavigationDrawerCallbacks
接口。 单击导航抽屉中某个位置的项目时会调用此方法,在此方法中,将R.id.container
替换R.id.container
位置所需的片段。
您不必使用PlaceholderFragment
,它是在您实现自己之前首次显示的模拟。 随意删除它并创建您想要的任何片段。
OnItemClickListener
已经在NavigationDrawerFragment的onCreateView
方法中实现。
占位符片段就是这样。 它是一个空白片段,在自动生成的代码中用于向您展示如何使用导航抽屉。 您可以在导航抽屉中使用任何片段。
在实现NavigationDrawerFragment的活动中的onNavigationDrawerItemSeleced(int position)中选择项目时,可以显示片段。 您可以使用FragmentManager将旧片段换成新片段。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.