假设我有一个导航抽屉,其中包含三个菜单项,即cat1,cat2和cat3。每当用户单击此按钮时,它将打开一个片段,该片段将从Web服务器中获取数据并解析JSON数据并显示在回收者视图中。
现在我的问题是。
我是否需要为导航抽屉的每个菜单项(即cat1,cat2和cat3)创建单独的片段?或者我可以使用一个片段并传递这样的参数http://example.com?cat=1
到该片段并加载回收者视图项?
那么,要实现此目标,我应该遵循哪个程序,为每个菜单项分配单独的片段或单个片段?谢谢。
最佳答案
您绝对应该使用单个片段,并避免使用一些样板代码。这是您应该如何做:
public class CategoryFragment extends Fragment {
public static CategoryFragment newInstance(int categoryId) {
CategoryFragment fragment = new CategoryFragment();
Bundle extras = new Bundle();
extras.putInt("categoryId", categoryId);
fragment.setArguments(extras);
return fragment;
}
...
// Determine which category you're on
private int getCategoryId() {
return getArguments().getIntExtra("categoryId", 1);
}
}
要实例化片段,您可以简单地使用:
// Construct a cat2 fragment
CategoryFragment categoryFragment = CategoryFragment.newInstance(2);