Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 带有片段列表的ViewPager_Android_Android Fragments_Android Viewpager - Fatal编程技术网

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)

您没有在适配器类中传递任何数组列表