我試圖在我的項目中執行TwoWayView,方法是按照該鏈接中提供的示例項目。我已經實現了一切,我的代碼工作沒有任何錯誤,但實際列表沒有得到充氣。經過調試,我發現適配器設置正確,getItemCount
方法也返回正數,但其他兩個重寫的方法onCreateViewHolder
和onBindViewHolder
沒有被調用。我不知道爲什麼它不工作。請參閱下面的部分代碼,任何幫助表示讚賞。謝謝。RecyclerView.Adapter的onCreateViewHolder和onBindViewHolder方法沒有被調用
MyAdapter.java類
public class MyAdapter extends RecyclerView.Adapter <MyViewHolder> {
private MySimpleCursorAdapter mCursor;
//some other private fields here
public MyAdapter(Context context, Cursor c, int resourceId, ViewType viewType, String containerId) {
mCursor = new MySimpleCursorAdapter(a1,a2,a3,a4,a5,a6); //Passed necessary arguments
....
}
@Override
public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
Log.w("onCreateViewHolder", "--------->executed"); //Line not executed
final View view = mCursor.newView(mContext, mCursor.getCursor(), parent);
return new MyViewHolder(view);
}
@Override
public void onBindViewHolder(MyViewHolder holder, int position) {
Log.w("onBindViewHolder", "--------->executed"); //Line not executed
mCursor.bindView(holder.itemView, mContext, mCursor.getCursor());
}
@Override
public int getItemCount() {
Log.w("count", Integer.toString(mCursor.getCount())); //This is executed
return mCursor.getCount();
}
private class MySimpleCursorAdapter extends SimpleCursorAdapter {
public MySimpleCursorAdapter(Context context, int layout, Cursor c, String[] from, int[] to, int flags) {
super(context, layout, c, from, to, flags);
}
@Override
public View newView(Context context, Cursor cursor, ViewGroup parent) {
View view = mLayoutInflater.inflate(mLayoutToInflate, null);
....
return view;
}
@Override
public void bindView(final View view, Context context, Cursor cursor) {
//Implemented this method for inflating all subviews inside each item of the list
}
}
}
注:我有過類似的問題消失,但提供的答案,因爲我的RecyclerView
是不是裏面ScrollView
,也是getItemCount
是有不相關的我的問題返回正數。
使用此適配器https://gist.github.com/Shywim/127f207e7248fe48400b – pskink