Android 使用多个选项卡片段
这是我第一次在应用程序中使用标签,我觉得这将是一个简单的解决方案,但我找不到正确的解决方案。我现在有5个标签片段,但当我运行它时,它们都包含相同的材料。我认为问题在于这种方法:Android 使用多个选项卡片段,android,tabs,android-fragments,Android,Tabs,Android Fragments,这是我第一次在应用程序中使用标签,我觉得这将是一个简单的解决方案,但我找不到正确的解决方案。我现在有5个标签片段,但当我运行它时,它们都包含相同的材料。我认为问题在于这种方法: @Override public Fragment getItem(int position) { Fragment fragment = new MiscFragment(); Bundle args = new Bundle(); args.putInt(Mis
@Override
public Fragment getItem(int position) {
Fragment fragment = new MiscFragment();
Bundle args = new Bundle();
args.putInt(MiscFragment.ARG_SECTION_NUMBER, position + 1);
fragment.setArguments(args);
return fragment;
}
我将片段设置为new miscsfragment()代码>(当我创建项目时,eclipse自动使用dummyfragment构建了该代码)
我有:
public static class MiscFragment extends Fragment {
public static final String ARG_SECTION_NUMBER = "section_number";
public MiscFragment() {
}
View rootView;
GridView gridView;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
rootView = inflater.inflate(R.layout.misc_fragment,
container, false);
gridView = (GridView) rootView.findViewById(R.id.miscgridview);
gridView.setAdapter(new MiscAdapter(getActivity()));
return rootView;
}
}
public static class OtherFragment extends Fragment{
public static final String ARG_SECTION_NUMBER = "section_number";
public OtherFragment(){
}
View rootView;
GridView gridView;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup contatiner,
Bundle savedInstanceState){
rootView = inflater.inflate(R.layout.sb_fragment,
contatiner, false);
gridView = (GridView) rootView.findViewById(R.id.sbgridview);
gridView.setAdapter(new OtherAdapter(getActivity()));
return rootView;
}
}
(第一个方法和两个内部类都在我的MainActivity中),看起来它们都使用相同的“section\u number”
,因此这两个GridView
都引用了相同的内容。每个片段的两个适配器类在GridView
中都有不同数量的项,但第二个适配器类的外观和行为与第一个适配器类相同。任何帮助都将不胜感激 您从未读取片段中的节号
参数
int section = getArguments().getInt(ARG_SECTION_NUMBER);
我讨厌回答我自己的问题,但问题是:
问题在于getItem
方法。其工作原理如下:
public Fragment getItem(int position) {
Fragment fragment1 = new FirstFragment();
Fragment fragment2 = new SecondFragment();
Fragment fragment3 = new ThirdFragment();
if(position == 0){
return fragment1;
}
else if (position == 1){
return fragment2;
}
else{
return fragment3;
}
}
然后,每个(数字)Fragment()都与内部片段类相关,这非常有意义。因此,我是否需要更改我的getItem
方法以包含所有片段,或者删除其中的一个片段,以便我可以将其用于所有片段。然后在我的每个内部类中使用int section
?