커서 어댑터를 이용한 데이터베이스 연결에 대해 질문이 있습니다(안드로이드)(초보)
조회수 866회
현재 데이터베이스를 생성하여 리스트뷰에 연결하려고 합니다.
먼저 커서 어댑터의 코드입니다.
public class DBAdapterForSearched extends ResourceCursorAdapter {
public DBAdapterForSearched(Context context, int layout, Cursor c, boolean autoRequery) {
super(context, layout, c, autoRequery);
}
public DBAdapterForSearched(Context context, int layout, Cursor c, int flags) {
super(context, layout, c, flags);
}
@Override
public void bindView(View view, Context context, Cursor cursor) {
TextView name = (TextView) view.findViewById(R.id.item_city);
name.setText(cursor.getString(cursor.getColumnIndex("ITEM1")));
TextView phone = (TextView) view.findViewById(R.id.item_country);
phone.setText(cursor.getString(cursor.getColumnIndex("ITEM2")));
}
@Nullable
@Override
public CharSequence[] getAutofillOptions() {
return new CharSequence[0];
}
}
위의 코드대로 어댑터를 만들고 이 어댑터를 한 리스트뷰에 연결시키기 위해 액티비티에 연결했습니다만
public class Searched extends AppCompatActivity {
String DATABASE_NAME = "searched";
String query = "SELECT distinct city from searched_table";
DBHelperForSearched db;
ListView list;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.searched_list);
db = new DBHelperForSearched(this);
db.getWritableDatabase();
// Cursor cursor = db.rawQuery(query, null);
DBAdapterForSearched adapter = new DBAdapterForSearched(
this, R.layout.searched_list, cursor, 0 );
list.setAdapter(adapter);
}
}
주석문을 처리한 부분에서 rawQuery가 동작하지 않으며 잘못된 구문이라고 나옵니다. 제가 놓친 부분이나 방법이 잘못된 것인지 조언을 구합니다.
-
(•́ ✖ •̀)
알 수 없는 사용자
댓글 입력