0

SQLlite データベースにいくつかの値を入力し、それらをグリッドビューで取得しています。エラー "column'_id'" does not exist.but I have not used any _id named column in the database. どうすればそれを機能させることができますか?? SimpleCursor Adapter に問題があると思います。

    GridView gv = (GridView)findViewById(R.id.gridView1);

    try
    {
        db1 = openOrCreateDatabase("record.db", Context.MODE_PRIVATE,null);
          db1.execSQL("CREATE TABLE IF NOT EXISTS stu(ID INTEGER primary Key,NAME VARCHAR foriegn key,age VARCHAR);");
         db1.execSQL("INSERT INTO stu VALUES (1,'mona','123');");

    Cursor c = db1.rawQuery("SELECT * FROM stu", null);
    if(c!= null){
     if (c.moveToFirst()) {
            do {
                String[] cols = new String[]{c.getString(c.getColumnIndex("ID")),c.getString(c.getColumnIndex("NAME"))};
            int[]   views = new int[]   {R.id.textView1,R.id.textView2};

                 SimpleCursorAdapter adapter = new SimpleCursorAdapter(this,
                        android.R.layout.simple_list_item_1,
                        c, cols, views);
                    gv.setAdapter(adapter);

               }while(c.moveToNext());}

    }} catch(Exception e){
        Toast.makeText(getBaseContext(),"errord"+ e.getMessage(), Toast.LENGTH_LONG).show();
                    }
}
4

1 に答える 1

0

CursorAdapter (SimpleCursorAdapter が拡張する)のドキュメントには、次のように記載されています。

The Cursor must include a column named "_id" or this class will not work.
于 2013-03-13T17:02:25.350 に答える