-2
カードビューのリサイクラビューを実装する際に問題がありました。を拡張するクラスにonBindViewHolder
を実装しました。しかし、私はを拡張するViewHolder
を使用したいと思います。問題は、私がカスタムViewHolder
を使用すると、アンドロイドスタジオはあなたが実装されていないと言っていますonBindViewHolder
。私はそれをする方法を知らない。アンドロイドのマスターはありますか?android onBindViewHolderは実装されていなくても実装されています
これは私のソースコードです。
package com.example.beyongha.zipv2;
import android.content.Context;
import android.graphics.drawable.Drawable;
import android.support.v4.content.ContextCompat;
import android.support.v7.view.menu.MenuView;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
import android.widget.Toast;
import android.support.v7.widget.CardView;
import java.util.ArrayList;
import java.util.List;
public class CardHeaderRecyclerAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
private static final int VIEW_TYPE_HEADER = 0;
private static final int VIEW_TYPE_ITEM = 1;
Context context;
List<Item> items;
int item_layout;
public CardHeaderRecyclerAdapter(Context context, List<Item> items, int item_layout) {
this.context = context;
this.items = items;
this.item_layout = item_layout;
}
@Override
public void onBindViewHolder(ViewHolder holder, int position) {
final Item item = items.get(position);
Drawable drawable = ContextCompat.getDrawable(context, item.getImage());
holder.image.setBackground(drawable);
holder.title.setText(item.getTitle());
holder.cardview.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(context, item.getTitle(), Toast.LENGTH_SHORT).show();
}
});
}
@Override
public int getItemCount() {
return this.items.size();
}
@Override
public int getItemViewType(int position) {
return (position == 0) ? VIEW_TYPE_HEADER : VIEW_TYPE_ITEM;
}
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_cardview, null);
return new ViewHolder(v);
}
static class HeaderViewHolder extends RecyclerView.ViewHolder {
public HeaderViewHolder(View view) {
super(view);
}
}
public class ViewHolder extends RecyclerView.ViewHolder {
ImageView image;
TextView title;
CardView cardview;
public ViewHolder(View itemView) {
super(itemView);
image = (ImageView) itemView.findViewById(R.id.image);
title = (TextView) itemView.findViewById(R.id.title);
cardview = (CardView) itemView.findViewById(R.id.cardview);
}
}
}
おかげで、あなたのCardHeaderRecyclerAdapter.ViewHolderを使用してアダプターを拡張!出来た! :) –