Very interesting problem. I have a ListView with a custom CursorAdapter. When creating an adapter, I give it 2 cursors:
Cursor structure = SQLD.query("Structure", new String[]{"_id", "NumNote", "Type"}, "DATE = "+Date, null, null, null, null, null); Cursor texts = SQLD.query("Texts", new String[] {"_id", "NumNote", "Text"}, "DATE = "+Date, null, null, null, null, null); CustomCursorAdapter CCA = new CustomCursorAdapter(this, structure, texts); The Structure table looks like this: 
Next in the constructor, I call the superclass constructor and pass it the structure cursor:
public CustomCursorAdapter(Context context, Cursor structure, Cursor inTexts) { super(context, structure, 0); That is, this cursor will be passed to the newView and bindView methods. And now if we check the content of the cursor in any of these methods, then the 3rd line will be thrown:
@Override public View newView(Context context, Cursor cursor, ViewGroup parent) { while(cursor.moveToNext()){ Log.i("CursorAdapter", cursor.getInt(cursor.getColumnIndex("NumNote"))+" "+ cursor.getString(cursor.getColumnIndex("Type"))); } Logcat output:
I/CursorAdapter: 0 Text I/CursorAdapter: 0 Text I/CursorAdapter: 1 Text I/CursorAdapter: 1 Text I/CursorAdapter: 2 Text And if you check the cursor that passed to the constructor with a custom adapter, then everything is fine, I'm in a stupor.