Адаптер пейджера не отображает изображение после получения ответа от фрагмента

Я получаю три изображения от ответа, и я храню в arraylist, затем я пытаюсь установить в PagerAdapter, но ничего не отображается в моем плеере просмотра, следующий мой класс pageradapter, может ли кто-нибудь сказать, что я ошибаюсь

Я использую Fragment

В моем Postexecute я устанавливаю его в виде пейджера вроде этого

adapter = new ImageAdapter(All_Product_Details.this.getActivity());
            viewPager.setAdapter(adapter);
}

ниже - мой адаптер, который я устанавливаю после асинтетики

      public class ImageAdapter extends FragmentPagerAdapter {
    Context context;
    ImageAdapter(Context context)
    {
        this.context=context;
    }
    @Override
    public int getCount() {
        return multimglist.size();
    }

    @Override
    public Fragment getItem(int i) {
        return null;
    }

    @Override
    public void destroyItem(View container, int position, Object object) {
        ((ViewPager) container).removeView((View) object);
    }
    @Override
    public boolean isViewFromObject(View view, Object object) {
        return view == ((ImageView) object);
    }

    @Override
    public Object instantiateItem(ViewGroup container, int position) {
        ImageView imageView = new ImageView(context);
        int padding = context.getResources().getDimensionPixelSize(
                R.dimen.activity_horizontal_margin);
        imageView.setPadding(padding, padding, padding, padding);
        //imageView.setScaleType(ImageView.ScaleType.FIT_CENTER);
        Picasso.with(context).load(multimglist.get(position)).into(imageView);


        // imageView.setImageURI(Uri.parse(imgStr[position]));
        ((ViewPager) container).addView(imageView, 0);
        return imageView;
    }
}

Ответ 1

this is my pager adapter change according that
public class LoginViewPagerCA extends PagerAdapter {
    SparseArray<View> views = new SparseArray<>();
    List<Viewpager_POJO> listofPersons;
    LayoutInflater inflater;
    Context context;

    private int count = 4;
    public LoginViewPagerCA(Context context, List<Viewpager_POJO> listofPersons) {
        this.context = context;
        this.listofPersons = listofPersons;
    }

    @Override
    public int getCount() {
        // TODO Auto-generated method stub
        return listofPersons.size();
    }
    public void setCount(int count) {
        this.count = count;
    }

    @Override
    public boolean isViewFromObject(View view, Object obj) {
        // TODO Auto-generated method stub
        return view == ((LinearLayout) obj);

    }
    public void setData(ArrayList<Viewpager_POJO> data) {
        listofPersons = data;
    }

    public Object instantiateItem(ViewGroup container, final int position)

    {

        final TextView txtFstName, txtLstName, txtRollno, txtArrTime, txtTimeLeft;
        ImageView imgView;

        final Viewpager_POJO rowperson = listofPersons.get(position);

        inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        final View itemView = inflater.inflate(R.layout.landing_pager_item, container, false);
        txtFstName = (TextView) itemView.findViewById(R.id.pager_big_tv);
        txtLstName = (TextView) itemView.findViewById(R.id.pager_small_tv);
        imgView = (ImageView) itemView.findViewById(R.id.pager_image);


        try {
            // txtCompn.setText((position + 1) + "/" + StuFirstNM.length);
            txtFstName.setText(rowperson.getDesc());
            txtLstName.setText(rowperson.getRating());

            //new LoadImage(imgView).execute(rowperson.getUrls());
            if (!TextUtils.isEmpty(rowperson.getUrls())) {
             //   PicassoTrustAll.getInstance(context).load(rowperson.getUrls()).placeholder(context.getResources().getDr`enter code here`awable(R.drawable.ic_launcher)).error(context.getResources().getDrawable(R.drawable.ic_launcher)).into(imgView);
//
                byte[] imgbytes = Base64.decode(rowperson.getStrImm(), Base64.DEFAULT);
                Bitmap bitmap = BitmapFactory.decodeByteArray(imgbytes, 0, imgbytes.length);
                imgView.setImageBitmap(bitmap);
//                PicassoTrustAll.getInstance(context)
//                        .load(rowperson.getUrls())
//                        .error(R.mipmap.landinglogo)
//                        .into(imgView);
                Log.w("Testing", "Image Download URL=" + rowperson.getUrls());
            } else {
                imgView.setBackgroundResource(R.mipmap.landinglogo);
            }


            ((ViewPager) container).addView(itemView);
            views.put(position, itemView);

        } catch (Exception e)

        {
            e.printStackTrace();
        }

        return itemView;
    }


    public void destroyItem(ViewGroup container, int position, Object object) {
        View view = (View) object;

        ((ViewPager) container).removeView(view);
        views.remove(position);
        view = null;
    }

Ответ 2

Если вы используете Fragments, вы должны использовать FragmentPagerAdapter, а не PagerAdapter. См. Официальную документацию здесь. Вы должны переопределить getItem(int position), чтобы вернуть желаемый Fragment в правильное положение.

Если вы посмотрите на документацию, они показывают класс FragmentPagerAdapter с именем MyAdapter. Это выглядит так:

public static class MyAdapter extends FragmentPagerAdapter {

    public MyAdapter(FragmentManager fm) {
        super(fm);
    }

    @Override
    public int getCount() {
        return NUM_ITEMS;
    }

    @Override
    public Fragment getItem(int position) {
        return ArrayListFragment.newInstance(position);
    }
}

Метод getItem(int position) должен возвращать новый экземпляр конкретного Fragment. Вы в настоящее время возвращаете null, что означает, что ничего не будет отображаться. Например, в моем собственном коде я переопределяю getItem() следующим образом:

@Override
public Fragment getItem(int position)
{
    switch (position)
    {
    case PagerConstants.PAGE_FILTER_RECIPES:
        return new FilteredRecipesFragment();

    case PagerConstants.PAGE_SELECTED_RECIPES:
        return new SelectedRecipesFragment();

    case PagerConstants.PAGE_SHOPPING_LIST:
        return new ShoppingListFragment();

    default: // Make sure that this never happens.
        return null;
    }
}