package com.example; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import com.example.Foo; import com.example.RecycledPagerAdapter; public class FooAdapter extends RecycledPagerAdapter { private List data; private LayoutInflater layoutInflater; @Override public FooViewHolder onCreateViewHolder(ViewGroup parent) { if (layoutInflater == null) { layoutInflater = LayoutInflater.from(parent.getContext()); } // Inflate view View v = layoutInflater.inflate(R.layout.item_player_card, parent, false); // Return view holder return new FooViewHolder(v); } @Override public void onBindViewHolder(FooViewHolder viewHolder, int position) { // Show foo inside viewHolder viewHolder.show(data.get(position)); } @Override public int getCount() { return data == null ? 0 : data.size(); } @Override public void setPrimaryItem(ViewGroup container, int position, Object object) { // TODO: optional callback when current object has changed } public TrackSet getData() { return data; } public void setData(TrackSet data) { if (this.data != data) { this.data = data; notifyDataSetChanged(); } } public static class FooViewHolder extends RecycledPagerAdapter.ViewHolder { public FooViewHolder(View v) { super(v); // TODO: use findViewById or Butterknife } public void show(Foo foo) { // TODO: update views with foo } } }