gpt4 book ai didi

android - 使用默认的 Android Studio 抽屉导航切换 Fragment

转载 作者:太空宇宙 更新时间:2023-11-03 12:07:33 26 4
gpt4 key购买 nike

我对 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。这是为什么?

最佳答案

(如果您没有这样做):在 AndroidStudio 中,最好使用抽屉导航生成示例 Activity (Alt+Insert -> Activity -> 抽屉导航 Activity (在 Android Studio 0.8.+ 上))您将获得托管带有一些可绘制对象的 NavigationDrawerFragment 的 Activity 。

在 NavigationDrawerFragment onCreateView 中填充要在抽屉中显示的列表项, Activity 将使用方法 onNavigationDrawerItemSelected(int) 自动实现接口(interface) NavigationDrawerFragment.NavigationDrawerCallbacks位置)。当您在 Navigation Drawer 中的某个位置单击项目时调用此方法,并且在该方法中您将 R.id.container 替换为该位置所需的 fragment 。

您不必使用 PlaceholderFragment,它是在您实现自己的之前第一次显示的模拟。随意删除它并创建您想要的任何 fragment 。

并且OnItemClickListener已经在NavigationDrawerFragment的方法onCreateView中实现了。

关于android - 使用默认的 Android Studio 抽屉导航切换 Fragment,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24899718/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com