アプリでタブを使用するのはこれが初めてで、これは簡単な修正になると思いますが、正しい解決策が見つかりません。現在、5 つのタブフラグメントがありますが、実行するとすべて同じ素材が含まれています。問題はこの方法にあると思います:
@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;
}
私はフラグメントをaに設定していnew MiscFragment();
ます(プロジェクトを作成したときにダミーフラグメントで自動的に構築されたEclipse)
そして、私が持っています:
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_number"
ため、両方GridView
の s が同じものを参照しています。各フラグメントのアダプター クラスはどちらも、アイテムの数が異なりますGridView
が、2 番目のものは最初のものと同じように見え、同じように動作します。どんな助けでも大歓迎です!