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 trialZubeyr Aciksari
21,074 PointsLet's implement the methods we need for our RecyclerView adapter. We'll start with an easy one: getItemCount(). Change i
Hi, i am stuck in here, can u please send the answer? Thanks!
"Let's implement the methods we need for our RecyclerView adapter. We'll start with an easy one: getItemCount(). Change it to return the number of items this adapter is adapting."
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 0;
}
/* 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());
}
}
}
6 Answers
James Simshaw
28,738 PointsWhat you're wanting to do in the getItemCount() method is return the total number of elements in the collection(in this case the array mGames). Arrays have the parameter length that lets you find out how large they are for example:
int arrayLength = array.length;
would store the number of elements in the array called array into the int variable arrayLength.
MUZ140232 Prince Sitete
12,392 PointsIn the getItemCount() method you need to return mGames.length
MUZ140681 Tatenda Muchaziwepi
4,340 PointsThis code should pass task 1-3. Happy coding
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);
GameViewHolder viewHolder = new GameViewHolder(view); // Task 2
return viewHolder;
}
@Override
public void onBindViewHolder(GameViewHolder holder, int position) {
holder.bindGame(mGames[position]); // Task 3
}
@Override
public int getItemCount() {
// Task 1
return mGames.length;
}
/* 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());
}
}
}
James Simshaw
28,738 PointsHello,
Were you not able to get this going with my answer to this question when you asked it here? If so, let me know what the problem is so I can help further.
Zubeyr Aciksari
21,074 PointsHi James, sorry for asking it twice, the fact is i didn't understand this getItemCount() method and confused about what to do next, can u please send the answer? Thanks!
Zubeyr Aciksari
21,074 PointsThanks a lot James, i worked :)
James Simshaw
28,738 PointsYou're welcome. Good luck with Android programming.