Android 带有片段列表的ViewPager
大家好,我有一个Android 带有片段列表的ViewPager,android,android-fragments,android-viewpager,Android,Android Fragments,Android Viewpager,大家好,我有一个ViewPager问题;这是我的密码 public class FragmentViewPager extends Fragment { ArrayList<Prodotto> listaProdotti = new ArrayList<Prodotto>(); public int posizione; @Override public View onCreateView(LayoutInflater inflater, ViewGroup co
ViewPager
问题;这是我的密码
public class FragmentViewPager extends Fragment {
ArrayList<Prodotto> listaProdotti = new ArrayList<Prodotto>();
public int posizione;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
ViewGroup root = (ViewGroup) inflater.inflate(R.layout.fragment_view_pager, container, false);
ViewPager pager = (ViewPager) root.findViewById(R.id.viewPager);
MyPagerAdapter mPageAdapter = new MyPagerAdapter(getActivity().getSupportFragmentManager(), this.posizione);
pager.setAdapter(mPageAdapter);
pager.setCurrentItem(this.posizione);
return root;
}
private class MyPagerAdapter extends FragmentPagerAdapter {
public int posizioneIniziale;
public MyPagerAdapter(FragmentManager fm, int posizione) {
super(fm);
this.posizioneIniziale = posizione;
//this.getItem(posizione);
}
@Override
public Fragment getItem(int pos) {
//pos = this.posizioneIniziale;
Log.w(null, "Posizione del fragment selezionato: " + pos);
FragmentVisualizzaProdotto fragment = new FragmentVisualizzaProdotto();
fragment.urlImmagine = listaProdotti.get(pos).getUrlImmagine();
fragment.nomeProdotto = listaProdotti.get(pos).getDescrizione();
fragment.prezzo = listaProdotti.get(pos).getPrezzo();
Log.w(null, "Nome e Prezzo del fragment selezionato: " + fragment.nomeProdotto + " e " + fragment.prezzo);
fragment.commento = listaProdotti.get(pos).getCommento();
//this.posizione = pos;
return fragment;
}
@Override
public int getCount() {
return listaProdotti.size();
}
}
}
公共类FragmentViewPager扩展了片段{
ArrayList listaProdotti=新的ArrayList();
公共国际邮政局;
@凌驾
创建视图上的公共视图(布局、充气机、视图组容器、,
Bundle savedInstanceState){
//为该碎片膨胀布局
视图组根=(视图组)充气器。充气(R.layout.fragment\u view\u页面,容器,false);
ViewPager pager=(ViewPager)root.findViewById(R.id.ViewPager);
MyPagerAdapter mPageAdapter=新的MyPagerAdapter(getActivity().getSupportFragmentManager(),this.posizione);
寻呼机设置适配器(mPageAdapter);
pager.setCurrentItem(this.posizione);
返回根;
}
私有类MyPagerAdapter扩展了FragmentPagerAdapter{
公共int Posizionialile;
公共MyPagerAdapter(FragmentManager fm,int posizione){
超级(fm);
this.posizioninizale=posizione;
//这个.getItem(posizione);
}
@凌驾
公共片段getItem(int-pos){
//pos=this.posizionenizale;
w(null,“Posizione del fragment selezionato:”+pos);
FragmentVisualizaProdotto fragment=新的FragmentVisualizaProdotto();
fragment.urlimagine=listaprototti.get(pos.geturlimagine();
fragment.nomeProdotto=listaProdotti.get(pos.getDescriptione();
fragment.prezzo=listaprototti.get(pos.getPrezzo();
Log.w(null,“Nome e Prezzo del fragment selezionato:”+fragment.nomeProdotto+“e”+fragment.Prezzo);
fragment.commento=listaprototti.get(pos.getCommento();
//this.posizione=pos;
返回片段;
}
@凌驾
public int getCount(){
返回listaProdotti.size();
}
}
}
问题是,当我滚动
ViewPager
的元素时,它会从ArrayList
的其他列表中获取元素(与MyPagerAdapter中传递的元素不同),有人能帮我吗?提前感谢我已经更改了适配器中传递arrayList的代码,所以
public class FragmentViewPager extends Fragment {
ArrayList<Prodotto> listaProdotti = new ArrayList<Prodotto>();
public int posizione;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
ViewGroup root = (ViewGroup) inflater.inflate(R.layout.fragment_view_pager, container, false);
ViewPager pager = (ViewPager) root.findViewById(R.id.viewPager);
MyPagerAdapter mPageAdapter = new MyPagerAdapter(getActivity().getSupportFragmentManager(), this.posizione, listaProdotti);
pager.setAdapter(mPageAdapter);
pager.setCurrentItem(this.posizione);
return root;
}
private class MyPagerAdapter extends FragmentPagerAdapter {
public int posizioneIniziale;
ArrayList<Prodotto> listaProdotti = new ArrayList<Prodotto>();
public MyPagerAdapter(FragmentManager fm, int posizione, ArrayList<Prodotto> listaProdotti) {
super(fm);
this.posizioneIniziale = posizione;
this.listaProdotti = listaProdotti;
//this.getItem(posizione);
}
@Override
public Fragment getItem(int pos) {
//pos = this.posizioneIniziale;
Log.w(null, "Posizione del fragment selezionato: " + pos);
FragmentVisualizzaProdotto fragment = new FragmentVisualizzaProdotto();
fragment.urlImmagine = listaProdotti.get(pos).getUrlImmagine();
fragment.nomeProdotto = listaProdotti.get(pos).getDescrizione();
fragment.prezzo = listaProdotti.get(pos).getPrezzo();
Log.w(null, "Nome e Prezzo del fragment selezionato: " + fragment.nomeProdotto + " e " + fragment.prezzo);
fragment.commento = listaProdotti.get(pos).getCommento();
//this.posizione = pos;
return fragment;
}
@Override
public int getCount() {
return listaProdotti.size();
}
}
公共类FragmentViewPager扩展了片段{
ArrayList listaProdotti=新的ArrayList();
公共国际邮政局;
@凌驾
创建视图上的公共视图(布局、充气机、视图组容器、,
Bundle savedInstanceState){
//为该碎片膨胀布局
视图组根=(视图组)充气器。充气(R.layout.fragment\u view\u页面,容器,false);
ViewPager pager=(ViewPager)root.findViewById(R.id.ViewPager);
MyPagerAdapter mPageAdapter=新的MyPagerAdapter(getActivity().getSupportFragmentManager(),this.posizione,ListaPrototti);
寻呼机设置适配器(mPageAdapter);
pager.setCurrentItem(this.posizione);
返回根;
}
私有类MyPagerAdapter扩展了FragmentPagerAdapter{
公共int Posizionialile;
ArrayList listaProdotti=新的ArrayList();
公共MyPagerAdapter(FragmentManager fm、int posizione、ArrayList listaProdotti){
超级(fm);
this.posizioninizale=posizione;
this.listaProdotti=listaProdotti;
//这个.getItem(posizione);
}
@凌驾
公共片段getItem(int-pos){
//pos=this.posizionenizale;
w(null,“Posizione del fragment selezionato:”+pos);
FragmentVisualizaProdotto fragment=新的FragmentVisualizaProdotto();
fragment.urlimagine=listaprototti.get(pos.geturlimagine();
fragment.nomeProdotto=listaProdotti.get(pos.getDescriptione();
fragment.prezzo=listaprototti.get(pos.getPrezzo();
Log.w(null,“Nome e Prezzo del fragment selezionato:”+fragment.nomeProdotto+“e”+fragment.Prezzo);
fragment.commento=listaprototti.get(pos.getCommento();
//this.posizione=pos;
返回片段;
}
@凌驾
public int getCount(){
返回listaProdotti.size();
}
}
}这对你没有帮助,但有一些建议: 1.不要使用getActivity().getSupportFragmentManager(),而是使用GetChildFragmentManager() 2.不要像您那样设置值
FragmentVisualizzaProdotto fragment = new FragmentVisualizzaProdotto();
fragment.urlImmagine = listaProdotti.get(pos).getUrlImmagine();
fragment.nomeProdotto = listaProdotti.get(pos).getDescrizione();
fragment.prezzo = listaProdotti.get(pos).getPrezzo();
Log.w(null, "Nome e Prezzo del fragment selezionato: " + fragment.nomeProdotto + " e " + fragment.prezzo);
fragment.commento = listaProdotti.get(pos).getCommento();
使用参数
Bundle args = new Bundle();
arg.put()//put params
fragment.setArguments(args)
您没有在适配器类中传递任何数组列表