RecyclerViews 및 Cursor 어댑터에 대해 this thread을 읽고 처음으로 solution을 사용하려고합니다. 나는 OnViewHolder 함수의 구현에 대해 혼란스러워한다. 나는 (ViewHolder, int) 또는 (ViewHolder, Cursor)에 의해 OnViewHolder가 호출 될 수 있음을 이해했지만 프로젝트와 함께 사용하는 방법을 모른다.CursorAdapter를 사용한 RecyclerView에 대한 의문점
이 RecyclerView와
public class FeedAdapter extends CursorAdapter {
/*
Etiqueta de Depuración
*/
private static final String TAG = FeedAdapter.class.getSimpleName();
/**
* View holder para evitar multiples llamadas de findViewById()
*/
static class ViewHolder {
TextView titulo;
TextView descripcion;
int tituloI;
int descripcionI;
}
public FeedAdapter(Context context, Cursor c, int flags) {
super(context, c, flags);
}
public View newView(Context context, Cursor cursor, ViewGroup parent) {
LayoutInflater inflater = LayoutInflater.from(parent.getContext());
View view = inflater.inflate(R.layout.item_layout, null, false);
ViewHolder vh = new ViewHolder();
// Almacenar referencias
vh.titulo = (TextView) view.findViewById(R.id.titulo);
vh.descripcion = (TextView) view.findViewById(R.id.descripcion);
// Setear indices
vh.tituloI = cursor.getColumnIndex(ScriptDatabase.ColumnEntradas.TITULO);
vh.descripcionI = cursor.getColumnIndex(ScriptDatabase.ColumnEntradas.DESCRIPCION);
view.setTag(vh);
return view;
}
public void bindView(View view, Context context, Cursor cursor) {
final ViewHolder vh = (ViewHolder) view.getTag();
// Setear el texto al titulo
vh.titulo.setText(cursor.getString(vh.tituloI));
// Obtener acceso a la descripción y su longitud
vh.descripcion.setText(descripcion);
}
}
내 새 어댑터 내 원래 어댑터입니다. OnBindViewHolder는 설정 방법을 모르기 때문에 미완성입니다.
public class RVAdapter extends CursorRecyclerViewAdapter<RVAdapter.ViewHolder>{
private Cursor mCursorAdapter;
public RVAdapter(Context context, Cursor cursor){
super(context,cursor);
}
public static class ViewHolder extends RecyclerView.ViewHolder {
CardView cv;
TextView titulo;
TextView descripcion;
int tituloI;
int descripcionI;
public ViewHolder (View view){
super(view);
cv = (CardView) itemView.findViewById(R.id.cv);
titulo = (TextView) itemView.findViewById(R.id.titulo);
descripcion = (TextView) itemView.findViewById(R.id.descripcion);
}
}
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View itemView = LayoutInflater.from(parent.getContext())
.inflate(R.layout.item_layout, parent, false);
ViewHolder vh = new ViewHolder(itemView);
return vh;
}
@Override
public void onBindViewHolder(ViewHolder viewHolder, int position) {
mCursorAdapter.moveToPosition(position);
final ViewHolder vh = (ViewHolder) view.getTag();
}
}
나는 "onBindViewHolder (ViewHolder viewHolder, 커서 커서)"이 경우에 사용할 수 있습니까? 어떻게 작동시킬 수 있습니까?
EDIT 1
이 당신은 아래 처럼보기와 필드를 액세스 할 수 ViewHolder와 위치를 사용할 수 있습니다
내 연기로 불편을 끼쳐 드려 죄송합니다. CursorRecyclerViewAdapter가 커서를 사용하여 onBindViewHolder를 구현해야한다는 것을 알았지 만 커서 변수로 위치를 이동하는 방법을 얻지 못합니다. 어떤 생각? 귀하의 흥미로운 답변을 많이 주셔서 고맙습니다 – mhkore
추상 함수 CursorRecyclerView로 원래 게시물을 편집했습니다 – mhkore