public class DBexamActivity extends Activity {
TextView tv;
SQLiteDatabase db;
DBexam dbe;
Spinner spin;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
dbe = new DBexam(this);
db = dbe.getWritableDatabase();
setContentView(R.layout.my_list_item_1);
tv = (TextView) findViewById(R.id.spintext);
spin = (Spinner) findViewById(R.id.spin);
addCategory("12");
Cursor c = selectCategory(db);
showCategory(c);
MyDBAdapter adapter = new MyDBAdapter(this, c);
spin.setAdapter(adapter);
db.close();
}
private void addCategory(String cate){
ContentValues values = new ContentValues();
values.put("CATENAME", "ak");
db.insertOrThrow("Dbexam", null, values);
}
public Cursor selectCategory(SQLiteDatabase db){
Cursor cursor = db.query("Dbexam", null, null, null, null, null, null);
startManagingCursor(cursor);
Log.d("TA", "getColumn = " + cursor.getColumnCount());
return cursor;
}
public void showCategory(Cursor cursor){
StringBuilder builder = new StringBuilder();
while(cursor.moveToNext()){
String text = cursor.getString(1);
builder.append(text);
Log.d("TA", "category = " + text);
}
tv.setText(builder);
}
class MyDBAdapter extends CursorAdapter{ //커서 어댑터
public MyDBAdapter(Context context, Cursor c) {
super(context, c);
}
@Override
public void bindView(View V, Context context, Cursor C) { //2. newView에서 -> 이곳 bindView로 넘어온다.
TextView tv = (TextView)V.findViewById(android.R.id.text1);
String text = C.getString(1);
tv.setText(text);
}
@Override
public View newView(Context context, Cursor cursor, ViewGroup parent) {
return getLayoutInflater().inflate(android.R.layout.simple_list_item_1, null);
}
}
}
<에러메시지>
08-12 14:28:00.569: ERROR/AndroidRuntime(20412): Uncaught handler: thread main exiting due to uncaught exception
08-12 14:28:00.589: ERROR/AndroidRuntime(20412): java.lang.RuntimeException: Unable to start activity ComponentInfo{idea.think/idea.think.DBexamActivity}: java.lang.IllegalArgumentException: column '_id' does not exist
08-12 14:28:00.589: ERROR/AndroidRuntime(20412): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2496)
08-12 14:28:00.589: ERROR/AndroidRuntime(20412): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2512)
08-12 14:28:00.589: ERROR/AndroidRuntime(20412): at android.app.ActivityThread.access$2200(ActivityThread.java:119)
08-12 14:28:00.589: ERROR/AndroidRuntime(20412): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1863)
08-12 14:28:00.589: ERROR/AndroidRuntime(20412): at android.os.Handler.dispatchMessage(Handler.java:99)
08-12 14:28:00.589: ERROR/AndroidRuntime(20412): at android.os.Looper.loop(Looper.java:123)
08-12 14:28:00.589: ERROR/AndroidRuntime(20412): at android.app.ActivityThread.main(ActivityThread.java:4363)
08-12 14:28:00.589: ERROR/AndroidRuntime(20412): at java.lang.reflect.Method.invokeNative(Native Method)
08-12 14:28:00.589: ERROR/AndroidRuntime(20412): at java.lang.reflect.Method.invoke(Method.java:521)
08-12 14:28:00.589: ERROR/AndroidRuntime(20412): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
08-12 14:28:00.589: ERROR/AndroidRuntime(20412): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
08-12 14:28:00.589: ERROR/AndroidRuntime(20412): at dalvik.system.NativeStart.main(Native Method)
08-12 14:28:00.589: ERROR/AndroidRuntime(20412): Caused by: java.lang.IllegalArgumentException: column '_id' does not exist
08-12 14:28:00.589: ERROR/AndroidRuntime(20412): at android.database.AbstractCursor.getColumnIndexOrThrow(AbstractCursor.java:314)
08-12 14:28:00.589: ERROR/AndroidRuntime(20412): at android.widget.CursorAdapter.init(CursorAdapter.java:111)
08-12 14:28:00.589: ERROR/AndroidRuntime(20412): at android.widget.CursorAdapter.<init>(CursorAdapter.java:90)
08-12 14:28:00.589: ERROR/AndroidRuntime(20412): at idea.think.DBexamActivity$MyDBAdapter.<init>(DBexamActivity.java:76)
08-12 14:28:00.589: ERROR/AndroidRuntime(20412): at idea.think.DBexamActivity.onCreate(DBexamActivity.java:39)
08-12 14:28:00.589: ERROR/AndroidRuntime(20412): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
08-12 14:28:00.589: ERROR/AndroidRuntime(20412): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2459)
08-12 14:28:00.589: ERROR/AndroidRuntime(20412): ... 11 more
Caused by: java.lang.IllegalArgumentException: column '_id' does not exist
왜 이런 메시지가 노출되는지 모르겠습니다. DB에 _id 컬럼도 있는데 말이죠. AUTOINCREMENT 도 해줬는데, 왜 _id를 찾는지
모르겠어요. 답변 주세요.ㅠㅠ 감사합니다.
http://www.androidpub.com/20313