Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法在Android的Gridview中显示数据!请帮帮我_Android_Database_Gridview_Cursor - Fatal编程技术网

无法在Android的Gridview中显示数据!请帮帮我

无法在Android的Gridview中显示数据!请帮帮我,android,database,gridview,cursor,Android,Database,Gridview,Cursor,我正在我的SQLlite数据库中输入一些值,然后在gridview中检索它们。我得到一个错误“列”“id”“”不存在。但我没有在数据库中使用任何“id”命名列。我怎样才能让它工作??我认为SimpleCursor适配器存在一些问题 GridView gv = (GridView)findViewById(R.id.gridView1); try { db1 = openOrCreateDatabase("record.db", Context.MODE_

我正在我的SQLlite数据库中输入一些值,然后在gridview中检索它们。我得到一个错误“列”“id”“”不存在。但我没有在数据库中使用任何“id”命名列。我怎样才能让它工作??我认为SimpleCursor适配器存在一些问题

    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();
                    }
}
SimpleCursorAdapter扩展的文档说明:


抱歉,如果这听起来很傻,但我是android新手,我是否必须在我的数据库中包含一个名为_id的列?我现在已经这样做了,Cursor c=db1.rawQuery(“选择id作为_id,NAME,age FROM stu”,null);但是又出现了一个错误。。如何做到这一点??是的,表的架构必须包含一个标记为_id.Change db1.execSQL(“如果不存在创建表stu(id INTEGER主键,NAME VARCHAR foriegn Key,age VARCHAR);”)的列;到db1.execSQL(“如果不存在创建表stu(_idinteger主键,NAME VARCHAR foriegn Key,age VARCHAR);”;感谢您的回复,但是仍然会出现一些错误,按照您的指示,我已将“ID”的值更改为_ID,并且在c.getColumnIndex(“ID”)行中,我已将其更改为c.getColumnIndex(“ID”)。我仍然收到的错误是“从第0行col-1获取字段插槽失败”。如果可能,请您发布代码,您认为这很可能有效吗?这将对我有很大帮助,因为Gridview是我项目的重要组成部分。先生,请。
The Cursor must include a column named "_id" or this class will not work.