ViewHolders - это в основном кеши объектов View и внутреннего класса RecyclerView.
С RecyclerView.Adapter абстрактен вам придется выполнять эти три метода:
общественность VH onCreateViewHolder (ViewGroup родитель, внутр viewType) общественности недействительного onBindViewHolder (держатель В.Х., внутр положение) общественного ИНТ getItemCount()
вы можете использовать RecyclerView.OnItemTouchListener в сочетании с обнаружением жестов для идентификации этих событий.
Вы можете добавить слушателей в реализацию пользовательского адаптера. Это будет что-то вроде:
public class RecyclerViewAdapter extends RecyclerView.Adapter<RecyclerViewAdapter.ViewHolder> {
public interface OnItemClickListener {
public void onItemClicked(int position);
}
public interface OnItemLongClickListener {
public boolean onItemLongClicked(int position);
}
private Fragment mFragment;
public static class ViewHolder extends RecyclerView.ViewHolder {
public View v;
public ViewHolder(View v) {
super(v);
this.v = v;
}
}
public RecyclerViewAdapter(Fragment fragment) {
mFragment = fragment;
}
@Override
public void onBindViewHolder(ViewHolder holder, final int position) {
holder.v.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mFragment.onItemClicked(position);
}
});
holder.v.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
mFragment.onItemLongClicked(position);
return true;
}
});
}
. . .
}
Я не думаю, что есть где-нибудь еще, что вы могли бы его поместить ... – tachyonflux
@karaokyo не проблема в 'onBindViewHolder'? – grizzly
Не должно быть проблем. Это просто создание и установка слушателя. Для создания и установки строки было бы слишком сложно. – tachyonflux