lundi 14 mars 2016

E/CursorWindow: Failed to read row 0, column -1 from a CursorWindow which has 2 rows, 2 columns

E/CursorWindow: Failed to read row 0, column -1 from a CursorWindow which has 2 rows, 2 columns.

I am getting this when trying to use my ListView adapter. I am not sure why this is happening.

My ASync background task:

protected String doInBackground(String... params) {
    databaseOperations databaseOperations = new databaseOperations(ctx);

    String method = params[0];
    if(method.equals("getInfo")) {
        listView = (ListView)activity.findViewById(R.id.list);
        SQLiteDatabase db = databaseOperations.getReadableDatabase();
        Cursor cursor = databaseOperations.getInfo(db);
        itemAdapter = new ItemsAdapter(ctx, R.layout.display_todo_row);
        String name, desc, time;
        Log.d("columns:", String.valueOf(cursor.getColumnCount()));
        while(cursor.moveToNext()){
            name = cursor.getString(cursor.getColumnIndex(ItemData.ItemInfo.taskName));
            desc = cursor.getString(cursor.getColumnIndex(ItemData.ItemInfo.taskDesc));
            time = cursor.getString(cursor.getColumnIndex(ItemData.ItemInfo.taskTimestamp));
            Item item = new Item(time, name, desc);
            publishProgress(item);
        }

        return "getInfo";

    }
    return null;
}

My DBOperation.

public class databaseOperations extends SQLiteOpenHelper{
    public static final int databaseVersion = 1;
    public String createQuery = "CREATE TABLE " + ItemData.ItemInfo.tableName+" ("+ ItemData.ItemInfo.taskName+" TEXT,"+ ItemData.ItemInfo.taskDesc+" TEXT,"+ ItemData.ItemInfo.taskTimestamp+" TEXT);";

    public databaseOperations(Context context) {
        super(context, ItemData.ItemInfo.databaseName, null, databaseVersion);
        Log.d("Database operations", "Database was succesfully created");
    }

    @Override
    public void onCreate(SQLiteDatabase sdb) {
        sdb.execSQL(createQuery);
        Log.d("Database operations", "Database was succesfully created");
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

    }



    public Cursor getInfo(SQLiteDatabase db){
        String[] projections = {ItemData.ItemInfo.taskName, ItemData.ItemInfo.taskDesc};
        Cursor cursor = db.query(ItemData.ItemInfo.tableName, projections, null, null, null, null, ItemData.ItemInfo.taskTimestamp + " ASC");
        return cursor;
    }

    public void insertData(databaseOperations dop, String name, String desc, long timestamp){
        SQLiteDatabase SQ = dop.getWritableDatabase();
        ContentValues CV = new ContentValues();
        CV.put(ItemData.ItemInfo.taskName, name);
        CV.put(ItemData.ItemInfo.taskDesc, desc);
        String timestampString = Long.toString(timestamp);
        CV.put(ItemData.ItemInfo.taskTimestamp, timestampString);
        long k = SQ.insert(ItemData.ItemInfo.tableName, null, CV);
        Log.d("Database operations", "Data was successfully inserted.");
    }




}

Aucun commentaire:

Enregistrer un commentaire