最近刚学了Android中的数据库存储 SQLite 数据库,在仿照着书上的例子写一个电话簿,然而在运行的过程中则是出现了以下的错误。
这是我的代码部分
try{ Cursor cursor = db.rawQuery("select * from contact",null); inflateList(cursor); }catch (SQLiteException e){ db.execSQL("create table contact(<span style="color: #800000;"><strong>id integer</strong></span> "+"primary key autoincrement," +"name varchar(50),"+"telephone varchar(50))"); Cursor cursor = db.rawQuery("select * from contact",null); inflateList(cursor); } —————————————————————————————————————— private void inflateList(Cursor cursor){ //填充 simplecursorAdapter SimpleCursorAdapter sca = new SimpleCursorAdapter(MainActivity.this, R.layout.show, cursor, new String[]{"name","telephone"}, new int[]{R.id.my_name,R.id.my_telephone},CursorAdapter.FLAG_REGISTER_CONTENT_OBSERVER); listView.setAdapter(sca); }
注意代码中的红色字块,原来我是想用 id 比较容易,然而缺少了一列 _id。
_id 是用来干什么的?
SimpleCursorAdapter 只识别 _id 作为主键
所以我们需要把上面查询的代码修改一下,添加一个 _id 的值