【问题标题】:RecyclerView with Retrofit2RecyclerView 与 Retrofit2
【发布时间】:2018-03-10 13:55:02
【问题描述】:

我尝试使用retrofit2 执行recyclerView,但我在我的代码中执行了:recyclerView Adapter Constructor 并且我在此行的 MainActivity 部分出现错误 - “(flowersList,this)”:我收到错误:列出匿名retrofit2.Callback

RecyclerViewFlowersAdapter recyclerViewAdapter = new RecyclerViewFlowersAdapter(flowersList, this);

我的代码我的 MainActivity 是:

  try {
        APIService service = ApiClient.getRetrofit().create(APIService.class);
        retrofit2.Call<List<Flower>> call = service.getFlowerData();
        call.enqueue(new Callback<List<Flower>>() {

            @Override
            public void onResponse(retrofit2.Call<List<Flower>> call, Response<List<Flower>> response) {
                List<Flower> flowersList = response.body();
                mLinearLayoutManager = new LinearLayoutManager(MainActivity.this);

                mRecyclerView = findViewById(R.id.recycler_view);
                mRecyclerView.setLayoutManager(mLinearLayoutManager);

                RecyclerViewFlowersAdapter recyclerViewAdapter = new RecyclerViewFlowersAdapter(flowersList, this);
                mRecyclerView.setAdapter(recyclerViewAdapter);
            }

RecyclerViewFlowersAdapter 中的代码是:

public class RecyclerViewFlowersAdapter extends RecyclerView.Adapter<RecyclerViewHolder> {
private List<Flower> mFlowers;
private Context mContext;

public RecyclerViewFlowersAdapter(List<Flower> flowers, Context context) {
    mContext = context;
    mFlowers = flowers;
}


@Override
public RecyclerViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
    View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.flower_item_card, null);
    RecyclerViewHolder recyclerViewHolder = new RecyclerViewHolder(view);
    return recyclerViewHolder;
}

@Override
public void onBindViewHolder(RecyclerViewHolder holder, int position) {
 holder.mTextViewTitle.setText(mFlowers.get(position).getName());

    Picasso.with(mContext)
            .load(mFlowers.get(position).getPhoto()).into(holder.mImageViewFlower);

}

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

}

我在 RecyclerViewHolder 中的代码是:

public class RecyclerViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {

public TextView mTextViewTitle;
public ImageView mImageViewFlower;


public RecyclerViewHolder(View itemView){
    super(itemView);
    itemView.setOnClickListener(this);

    mTextViewTitle = itemView.findViewById(R.id.title);
    mImageViewFlower = itemView.findViewById(R.id.imageViewFlower);

}

@Override
public void onClick(View v) {

}

}

我尝试做很多事情,但仍然是错误的。 谢谢你的帮助:)

【问题讨论】:

    标签: constructor retrofit2 android-recyclerview


    【解决方案1】:

    您可能使用了错误的上下文,请尝试使用MainActivity.this 而不是this。改变这个

    RecyclerViewFlowersAdapter recyclerViewAdapter = new RecyclerViewFlowersAdapter(flowersList, this);
    

    到这里

    RecyclerViewFlowersAdapter recyclerViewAdapter = new RecyclerViewFlowersAdapter(flowersList, MainActivity.this);
    

    【讨论】:

      猜你喜欢
      • 2019-05-25
      • 2019-02-20
      • 2017-06-05
      • 1970-01-01
      • 2017-01-16
      • 2023-03-21
      • 2019-08-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多