Welcome to the Treehouse Community

Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.

Start your free trial

Android Android Lists and Adapters (2015) Lists with RecyclerViews Adding Methods for a RecyclerView Adapter

Let's implement the methods we need for our RecyclerView adapter. We'll start with an easy one: getItemCount(). Change i

Am not sure what i am doing wrong can you guys help

GameAdapter.java
public class GameAdapter extends RecyclerView.Adapter<GameAdapter.GameViewHolder> {

    private Game[] mGames;

    public GameAdapter(Game[] games) {
        mGames = games;
    }

    @Override
    public GameViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.game_list_item, parent, false);
        // Task 2
        return null;
    }

    @Override
    public void onBindViewHolder(GameViewHolder holder, int position) {
        // Task 3
    }

    @Override
    public int getItemCount() {
        // Task 1
        return mGames;
    }

    /* Add your code here */
    public class GameViewHolder extends RecyclerView.ViewHolder {
        public TextView mTitleLabel;

        public GameViewHolder(View v) {
            super(v);
            mTitleLabel = (TextView)v.findViewById(R.id.titleLabel);
        }

        public void bindGame(Game game) {
            mTitleLabel.setText(game.getTitle());
        }
    }
}

3 Answers

Hello,

Currently you are trying to return the full array. What you're needing to do is return the size of the array, which in Java can be done with the Array.length parameter. For example, if you want to find the length of an array called mArray you would do

size = mArray.length;

Please let us know if this answers your question or if you need more assistance. Also, if you need more assistance, could you post your updated code so we can help you from where you are at.

thanx a lot makes sense now

You're welcome. Have fun with Android development.

Uros Mitic
Uros Mitic
4,704 Points

This worked for me:

@Override public int getItemCount() { return mGames.length; }