Search code examples
androidandroid-fragmentsgridviewandroid-adapterpicasso

GridView in fragment not populating (using picasso)


I am trying to use this example on the official android tutorial site and translating it into a gridview inside a fragment that uses picasso to load images.

I am looking at my code and I can't figure out what is wrong. The images simply won't load and all I get is a blank screen. What am I missing here?

My fragment code:

public class MainFragment extends Fragment {
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.fragment_main, container, false);
        GridView gridView = (GridView) view.findViewById(R.id.gridview);
        gridView.setAdapter(new ImageAdapter(getActivity().getApplicationContext()));
        return view;
        }
    }

My custom adapter:

public class ImageAdapter extends BaseAdapter {

    private Context mContext;

    public ImageAdapter(Context c){
        mContext = c;
    }
    @Override
    public Object getItem(int i) {
        return null;
    }

    @Override
    public long getItemId(int i) {
        return 0;
    }

    @Override
    public View getView(int i, View view, ViewGroup viewGroup) {
        ImageView imageView;
        if(view == null){
            imageView = new ImageView(mContext);

        }
        else{
            imageView = (ImageView) view;
        }
        Picasso.with(mContext).setLoggingEnabled(true);
        Picasso.with(mContext)
                .load(eatFoodyImages[i])
                .fit()
                .into(imageView);
        return imageView;
    }

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

    public static String[] eatFoodyImages = {
            "http://i.imgur.com/rFLNqWI.jpg",
            "http://i.imgur.com/C9pBVt7.jpg",
            "http://i.imgur.com/rT5vXE1.jpg",
            "http://i.imgur.com/aIy5R2k.jpg",
            "http://i.imgur.com/MoJs9pT.jpg",
            "http://i.imgur.com/S963yEM.jpg",
            "http://i.imgur.com/rLR2cyc.jpg",
            "http://i.imgur.com/SEPdUIx.jpg",
            "http://i.imgur.com/aC9OjaM.jpg",
            "http://i.imgur.com/76Jfv9b.jpg",
            "http://i.imgur.com/fUX7EIB.jpg",
            "http://i.imgur.com/syELajx.jpg",
            "http://i.imgur.com/COzBnru.jpg",
            "http://i.imgur.com/Z3QjilA.jpg",
    };
}

My activity:

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        if(savedInstanceState == null){
            getSupportFragmentManager()
                    .beginTransaction().add(R.id.mainfragment, new MainFragment())
                    .commit();
        }
    }
}

Solution

  • @Override public int getCount() { return eatFoodyImages.length; }