Android在光标适配器之间插入新行

Android在光标适配器之间插入新行,android,sqlite,Android,Sqlite,我有两个游标,游标1和游标2。游标适配器已用于显示游标1的结果。但是,我想为每5个游标2项插入游标2的项。我怎样才能做到这一点 目前,我已经为游标1的列表视图扩展了游标适配器。现在,我想为每5个游标1的项目将游标2个项目插入游标1 我已经看过MatrixCursor和MergeCursor,它们会合并并添加行,但我想在它们之间插入。有什么办法可以做到这一点吗?从你的解释中不容易理解你想要实现什么。 您应该扩展BaseAdapter类,因为它更容易适应您的需要。 这应该对你有用 public cl

我有两个游标,游标1和游标2。游标适配器已用于显示游标1的结果。但是,我想为每5个游标2项插入游标2的项。我怎样才能做到这一点

目前,我已经为游标1的列表视图扩展了游标适配器。现在,我想为每5个游标1的项目将游标2个项目插入游标1


我已经看过MatrixCursor和MergeCursor,它们会合并并添加行,但我想在它们之间插入。有什么办法可以做到这一点吗?

从你的解释中不容易理解你想要实现什么。 您应该扩展BaseAdapter类,因为它更容易适应您的需要。 这应该对你有用

public class CursorAdapterTwo extends BaseAdapter{

    private final Context context;
    LayoutInflater layoutInflater;
    String[] dataTypes;
    Cursor cursor1;
    Cursor cursor2;


    public CursorAdapterTwo(Context context, Cursor cursor1, Cursor cursor2) {
        this.context = context;
        this.cursor1 = cursor1;
        this.cursor2 = cursor2;
        layoutInflater = LayoutInflater.from(context);
    }

    static class ViewHolder {
        TextView textView;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        ViewHolder viewHolder;

        cursor1.moveToPosition(position);

        if((position % 5) == 0)
        {
            cursor2.moveToPosition(position / 5);
        }

        if (convertView == null) {
            convertView = layoutInflater.inflate(layout.list_item, parent, false);

            viewHolder = new ViewHolder();
            viewHolder.textView = (TextView) convertView.findViewById(id.text_view);

            convertView.setTag(viewHolder);
        } else {
            viewHolder = (ViewHolder) convertView.getTag();
        }

        String columnType = dataTypes[position];

        viewHolder.textView.setText("New text");

        return convertView;
    }

    @Override
    public int getCount() {

        if (cursor1 != null) {
            return cursor1.getCount() + cursor2.getCount();
        } else {
            return 0;
        }

    }

    @Override
    public Object getItem(int position) {
        if (cursor1 != null) {
            cursor1.moveToPosition(position);
            return cursor1;
        } else {
            return null;
        }
    }

    @Override
    public long getItemId(int position) {

        return position;
    }

}

我想你的意思是你想从cursor2得到一个项目,而从cursor1得到5个项目。是吗?是的,对于游标1中的每5项,我想从游标2中插入1项。getCount不是游标1和2的总和吗?或者可能是cursor1.count+(cursor1.count/5)?