【发布时间】:2014-07-22 23:54:50
【问题描述】:
我对 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 并使用数据库中的项目填充 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。这是为什么呢?
【问题讨论】:
标签: android android-fragments android-studio navigation-drawer