我正在尝试使用两种不同的布局设置游标适配器,第一种必须是唯一的,其他 - 相同,但getItemViewType(cursor.getPosition());
总是返回0 ...
这是我的适配器:
公共类MyAdapter扩展了CursorAdapter
public static class ViewHolder {
public ViewHolder (View rootView){}}
public ProfileAdapter(Activity activity, Cursor c) {
super(activity, c);
mActivity = activity;
}
@Override
public View newView(Context context, Cursor cursor, ViewGroup parent) {
int mLayoutId = -1;
mViewType = getItemViewType(cursor.getPosition());
if (mViewType == VIEW_TYPE_MAIN){
mLayoutId = R.layout.main;
} else {
mLayoutId = R.layout.list_items;
}
View rootView = LayoutInflater.from(context).inflate(mLayoutId, parent, false);
ViewHolder viewHolder = new ViewHolder(rootView);
rootView.setTag(viewHolder);
return rootView;
}
@Override
public void bindView(View view, Context context, Cursor cursor) {
mCursor = cursor;
mView = view;
mViewHolder = (ViewHolder) view.getTag();
mViewType = getItemViewType(cursor.getPosition());
if (mViewType == VIEW_TYPE_MAIN){
} else {
}
}
感觉我错过了很简单的事情......
会很高兴任何想法如何解决这个工作人员!
答案 0 :(得分:1)
您的适配器必须实现getViewTypeCount()
(并在您的情况下返回2)并实施getItemViewType()
。默认实现不了解您的数据,并且不会尝试解决这个问题。它只处理只使用一种视图类型的情况(因此返回0)。添加缺失的方法,你应该很好。