1

我想在 RecyclerView 中显示来自GitHubApi的数据,但我做不到。我可以在 ListView 中显示这些数据。我可以将 RecyclerView 与我自己的List<>集合数据一起使用。当我想将 RecyclerView 与 Retrofit 一起使用时,我的应用程序会显示白屏而不是抛出错误。我无法解决这个问题。

        call.enqueue(new Callback<List<P006StrongClass>>() {
        @Override
        public void onResponse(Response<List<P006StrongClass>> response, Retrofit retrofit) {
            RecyclerView.Adapter adapter=new P006RecyclerViewAdapter(getApplicationContext(),response.body());
recyclerViewP006.setLayoutManager(new LinearLayoutManager(P006RetrofitRecyclerView.this, LinearLayoutManager.VERTICAL, false));
            recyclerViewP006.setAdapter(adapter);
        }
        @Override
        public void onFailure(Throwable throwable) {
        }
    }); 

这是我的 RecyclerView 适配器类:

    public class P006RecyclerViewAdapter extends  RecyclerView.Adapter<P006RecyclerViewAdapter.MyViewHolder2> {
LayoutInflater layoutInflater;
List<P006StrongClass> p006StrongClassList;
MyViewHolder2 myViewHolder2;
public P006RecyclerViewAdapter(Context context,List<P006StrongClass> p006StrongClassList) {
    layoutInflater= (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    this.p006StrongClassList=p006StrongClassList;
}

@Override
public MyViewHolder2 onCreateViewHolder(ViewGroup parent, int viewType) {
    View view= layoutInflater.inflate(R.layout.p006customrow, parent, false);
    myViewHolder2=new MyViewHolder2(view);
    return myViewHolder2;
}

@Override
public void onBindViewHolder(MyViewHolder2 holder, int position) {
    P006StrongClass p006StrongClassTek=p006StrongClassList.get(position);
    holder.textViewP006.setText(p006StrongClassTek.getId());
}

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

@Override
public void onAttachedToRecyclerView(RecyclerView recyclerView) {
    super.onAttachedToRecyclerView(recyclerView);
}

public static class MyViewHolder2 extends RecyclerView.ViewHolder{
    TextView textViewP006;
    public MyViewHolder2(View itemView) {
        super(itemView);
        textViewP006=(TextView)itemView.findViewById(R.id.textViewP006);
    }
}
4

1 回答 1

1

您返回 0 作为您的 itemCount,这意味着您的RecyclerView

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

将其更改为

@Override
public int getItemCount() {
    return p006StrongClassList.size();
}
于 2016-01-15T12:34:05.227 回答