Fyruz
Fyruz

Reputation: 97

RecyclerView not showing

I'm using RecyclerView with a custom Adapter but it's not showing data. Adapter downloads some thumbnail images from database and get titles and infos from Api key.

Code of the Adapter Class:

public class mostViewedAdapter extends RecyclerView.Adapter<mostViewedAdapter.ViewHolder> {

 private List<String> fTitle;
 private List<String> fInfos;
 private List<String> thumbs;

 public mostViewedAdapter(List<String> titoli, List<String> infos, List<String>thumbsUrl){    
   fTitle = titoli;
   fInfos = infos;
   thumbs = thumbsUrl;    
 }

 public static class ViewHolder extends RecyclerView.ViewHolder {
    public TextView titleTextView;
    public TextView infoTextView;
    public ImageView thumbImageView;

    public ViewHolder(View itemView) {
       super(itemView);

       titleTextView = (TextView) itemView.findViewById(R.id.title);
       infoTextView = (TextView) itemView.findViewById(R.id.infos);
       thumbImageView = (ImageView) itemView.findViewById(R.id.thumb);    
    }
  }  

 @Override
 public mostViewedAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
    Context context = parent.getContext();
    LayoutInflater inflater = LayoutInflater.from(context);

    View mvView = inflater.inflate(R.layout.most_viewed, parent, false);    
    ViewHolder viewHolder = new ViewHolder(mvView);
    return viewHolder;
 }

 @Override
 public void onBindViewHolder(mostViewedAdapter.ViewHolder holder, int position) {

    String titolo = fTitle.get(position);
    String info = fInfos.get(position);
    String thumb = thumbs.get(position);

    UrlGenerator url = new UrlGenerator(thumb);
    Picasso.with(holder.thumbImageView.getContext()).load(url.generateImgUrl())
          .resize(50,70).centerCrop().into(holder.thumbImageView);
    holder.infoTextView.setText(info);
    holder.titleTextView.setText(titolo);

    TextView tvTitolo = holder.titleTextView;
    TextView tvInfo = holder.infoTextView;
    ImageView ivImage = holder.thumbImageView;    
  }

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

Recycler view:

public void initUI() {

    RecyclerView recList = (RecyclerView) findViewById(R.id.rvCinema);
    recList.hasFixedSize();

    mostViewedAdapter adapter = new mostViewedAdapter(titoli, info, thumbsUrl);
    recList.setAdapter(adapter);
    RecyclerView.LayoutManager lm = new LinearLayoutManager(this);
    recList.setLayoutManager(lm);
}

Upvotes: 1

Views: 1804

Answers (2)

mfaisalhyder
mfaisalhyder

Reputation: 2284

try like this:

MainActivity

public class MainActivity extends AppCompatActivity {
 RecyclerView mRecyclerView;
 mostViewedAdapter mViewAdapter;
 //.... other elements

 @Override
 protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);     

    mRecyclerView = (RecyclerView) findViewById(R.id.recyclerView_ID);
    mRecyclerView.setHasFixedSize(true);        
    mRecyclerView.setItemAnimator(new DefaultItemAnimator());
    mRecyclerView.setLayoutManager(new LinearLayoutManager(getApplicationContext()));
    mViewAdapter= new mostViewedAdapter (listName, listInfo, listThumbs);
    mRecyclerView.setAdapter(mViewAdapter);
 }
}

Adapter Class

Instead of returning 0 as a count return the size of array of of any one of the three lists.

@Override
public int getItemCount() {
  return fTitle.size();
   //return fInfos.size();  
   //return thumbs.size();  
}

Hope i helped, if still facing any issue, kindly post the logcat.

Upvotes: 1

Prince Gupta
Prince Gupta

Reputation: 173

Please return fTitle.size();
@Override public int getItemCount() { return fTitle.size(); }

Upvotes: 0

Related Questions