Код ниже. IDE работает с кодом, но gradle отказывается строить, говоря:
TextAdapter не является абстрактным и не переопределяет абстрактный метод onBindViewHolder(TextAdapter.SimpleTextHolder,int) в общедоступном классе адаптера TextAdapter extends RecyclerView.Adapter {
ошибка: метод не переопределяет и не реализует метод из супертипа
Я знаю, что это неправильно, потому что я сгенерировал метод с помощью Android Studio, поэтому я думаю, что это должна быть ошибка градиента?
Код адаптера RecyclerView:
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import ...R;
import ...jsonObjects.Nameable;
import java.util.ArrayList;
public class TextAdapter<T extends Nameable> extends RecyclerView.Adapter<TextAdapter.SimpleTextHolder> {
private ArrayList<T> items;
private ClickListener<T> clickListener;
public TextAdapter(ArrayList<T> items, ClickListener<T> onClick) {
this.items = items;
this.clickListener = onClick;
}
@Override
public SimpleTextHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.holder_text, parent, false);
return new SimpleTextHolder(view);
}
@Override
public void onBindViewHolder(SimpleTextHolder holder, int position) {
holder.itemTitle.setText(items.get(position).getName());
}
@Override
public int getItemCount() {
return items.size();
}
class SimpleTextHolder extends RecyclerView.ViewHolder {
TextView itemTitle;
SimpleTextHolder(View itemView) {
super(itemView);
itemTitle = itemView.findViewById(R.id.itemTitle);
itemView.setOnClickListener(v -> clickListener.onClick(items.get(getAdapterPosition())));
}
}
public interface ClickListener<T> {
void onClick(T item);
}
}