Domanda

Currently I have a tab host activity that contains SherlockFragment. In one of these tabs (Fragments), I want to implement a ViewPager that will show images (ImageView). I created a FragmentPagerAdapter and Fragment to add it in the ViewPager. But when I run the application, my ViewPager appears empty with no image in it.

Here are my classes:

BonusFragment.Java

public class BonusFragment extends SherlockFragment {
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    getImages(); //Here I get the images for the viewpager
}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {
    if (container == null) {
        return null;
    }

    View view = inflater.inflate(R.layout.bonus_frag, container, false);
    viewPager = (ViewPager) view.findViewById(R.id.pagr);
    Q.ADAPTER = new BonusPagerAdapter(getActivity()
            .getSupportFragmentManager(), myImagesList);
    viewPager.setAdapter(Q.ADAPTER);

    return view;
}

@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
    super.onViewCreated(view, savedInstanceState);

}

@Override
public void onActivityCreated(Bundle savedInstanceState) {
    super.onActivityCreated(savedInstanceState);

}
}

BonusPagerAdapter.Java

private ArrayList<Bitmap> items;

public BonusPagerAdapter(FragmentManager fm, ArrayList<Bitmap> items) {
    super(fm);
    this.items = items;
}

@Override
public int getCount() {
    return items.size();
}

@Override
public Fragment getItem(int position) {
    Bitmap bitmap = items.get(position);
    BonusImageFragment fragment = BonusImageFragment.newInstance("Glass 1");
    fragment.setBitmap(bitmap);

    return fragment;
}

@Override
public int getItemPosition(Object object) {
    return PagerAdapter.POSITION_NONE;
}

@Override
public void notifyDataSetChanged() {
    super.notifyDataSetChanged();
}
}

BonusImageFragment.Java

public class BonusImageFragment extends SherlockFragment {
private Bitmap bitmap;
public static final String EXTRA_MESSAGE = "EXTRA_MESSAGE";
private static String frag = "";

public BonusImageFragment() {
}

public static final BonusImageFragment newInstance(String message)

{

    frag = message;

    BonusImageFragment f = new BonusImageFragment();

    Bundle bdl = new Bundle(1);

    bdl.putString(EXTRA_MESSAGE, message);

    f.setArguments(bdl);

    return f;

}

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {

    View v = inflater.inflate(R.layout.glass_item, container, false);
    ImageView image = (ImageView) v.findViewById(R.id.glass_view);
    image.setImageBitmap(bitmap);

    return v;
}

public Bitmap getBitmap() {
    return bitmap;
}

public void setBitmap(Bitmap bitmap) {
    this.bitmap = bitmap;
}

}

Now why does my ViewPager always appears empty?

È stato utile?

Soluzione

Fixed it... I had to change "getActivity().getSupportFragmentManager()" in "BonusFragment.Java" with "getChildFragmentManager()"

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top