我在Android Studio中的导航抽屉实现上有些困惑。onCreate方法调用了PlaceholderFragment类,但我并不明白它是干什么的。
无论如何,我应该在哪里实现我的onItemClickListener以根据导航抽屉中所选项显示不同的碎片(fragment)?
这是我当前的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。为什么会这样呢?