0
SQLlite 데이터베이스에 값을 입력하고 gridview에서 값을 검색하고 있습니다. "column__id '오류가 발생합니다. 그러나, _id라는 컬럼을 사용하지 않았습니다. 데이터 베이스. 어떻게 작동시킬 수 있습니까 ?? 나는 SimpleCursor Adapter에 문제가 있다고 생각한다.Android에서 Gridview에 데이터를 표시 할 수 없습니다! 제발 도와주세요.
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();
}
}
미안, 난 내 데이터베이스에 _id라는 이름의 열을 포함해야합니까? –
지금이 작업을 수행했습니다. 커서 c = db1.rawQuery ("SELECT ID as _id, NAME, age FROM stu", null); 하지만 다른 오류가 나타납니다. 어떻게해야합니까 ?? –
예, 테이블의 스키마에는 _id라는 열이 있어야합니다. 변경 db1.execSQL ("ID가 존재하지 않는 경우 테이블을 만듭니다 (ID를 정수 기본 키, 이름 VARCHAR foriegn 키, 나이 VARCHAR);"); ~ db1.execSQL ("CREATE TABLE이 존재하지 않으면 stu (_id INTEGER 기본 키, NAME VARCHAR foriegn 키, age VARCHAR);"); – NPike