안드로이드 개발 질문/답변
(글 수 45,052)
DBManager dbmgr = new DBManager(this);
ListView listview = (ListView)findViewById(android.R.id.list);
// DB 연결
SQLiteDatabase sdb = dbmgr.getReadableDatabase();
// SQL문 실행 결과를 cursor객체로 받음
Cursor cursor = sdb.rawQuery("select _id, name from members", null);
cursor.moveToFirst();
String[] columns = new String[] { "name" };
int[] ids = new int[] { android.R.id.text1 };
ListAdapter adapter = new SimpleCursorAdapter(listview.getContext(),
android.R.layout.simple_list_item_1, cursor, columns, ids);
setListAdapter(adapter);
이부분이 리스트뷰에 추가하는 부분입니다. 그런데 DB는 정상적으로 추가가 되는듯 한데 리스트뷰에 추가가 되질 않네요
특별히 오류도 뜨질 않습니다.
dbmgr = new DBManager(add_user.this);
SQLiteDatabase sdb;
sdb = dbmgr.getWritableDatabase();
//members 테이블에 추출정보 추가
sdb.execSQL(("insert into members values("+ "1" + ", " + "'" + user_name + "'"
+ ", " + "'" + user_birthday + "'" + ", " + "'" + user_birthtime + "'" + ")"));
dbmgr.close();이부분이 테이블 추가하는 부분입니다.
db.execSQL("create table if not exists members (_id integer primary key autoincrement,
name text not null, birthday text, birthtime text)");이부분이 처음에 테이블을 만드는 부분이구요.
<LinearLayout android:id="@+id/tab1" android:layout_width="match_parent" android:layout_height="fill_parent" android:orientation="vertical" > <ListView android:id="@android:id/list" android:layout_width="match_parent" android:layout_height="360dp" android:background="@android:color/black"> </ListView> <Button android:id="@+id/adduser" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:text="사용자 추가" /> </LinearLayout>
이게 리스트뷰가 추가되어야 할 XML파일입니다. 로그캣을 봐도 특별히 오류나는 부분이 없어 파악이 어렵네요. DB에서 _id와 name을 가져와 리스트뷰에 추가하는 것이 이 코드의 목적입니다. 개발자 선배님들 잘좀 봐주시면 감사하겠습니다.




심플커서 어댑터 선언문에서 타입을 왜 ListAdapter 로 하신거에요??
혹시 잘못된거면 저부분이 잘못된거아닐까요??
저는 걍 타입을 SimpleCursorAdapter 로 하니 잘되던데...