안드로이드 개발 질문/답변
(글 수 45,052)
디비에 넣어서 리스트로 뽑아내고 다 되는데
클릭을 하면 그 리스트에 적용된 String형이 나오는 것이 아니라
SQLite 주소가 나와서 이렇게 질문 올립니다.
mHelper = new MemoDBHelper(this);
Cursor cursor;
SQLiteDatabase db = mHelper.getWritableDatabase();
cursor = db.rawQuery("SELECT * FROM memodb", null);
startManagingCursor(cursor);
SimpleCursorAdapter Adapter = null;
Adapter = new SimpleCursorAdapter(this,
android.R.layout.simple_list_item_1, cursor,
new String[] { "name" }, new int[] { android.R.id.text1 });
final ListView list = (ListView) findViewById(R.id.listView1);
list.setAdapter(Adapter);
list.setOnItemClickListener(new ListView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
// TODO Auto-generated method stub
String memoname = list.getItemAtPosition(arg2).toString();
Toast.makeText(MemoNote.this, memoname, Toast.LENGTH_SHORT).show();
}
});
Toast.makeText 부분에 memoname = list.getItemAtPosition(arg2).toString();
부분이 문제인거 같은데 해결법쫌 부탁드려용~
2011.07.07 18:39:12
계속 찾고 하니 답이 조금씩 나오는군요
list.setOnItemClickListener(new ListView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
// TODO Auto-generated method stub
Cursor c = (Cursor)list.getItemAtPosition(arg2);
String memoname = c.getString(arg2).toString();
Toast.makeText(MemoNote.this, memoname, Toast.LENGTH_SHORT).show();
}
});
로 구현하면 해당 리스트에 떠 있는 list String값이 뜹니다..
하지만 1번째 항목은 그냥 1로만 뜨고, 2번째 항목부터 잘 뜨는데요,... 이건 왜일지..ㅠ.ㅠ
2011.07.07 18:39:22
커서로 하는것보단 ListView같은경우 ArrayList가 좀 편하더군여 ㅋ
그 가져온 디비값을 ArrayList<String> names=new ArrayList<String>();에 넣어 두시고
memoname = names.get(arg2); 하면 될듯요~




질문 올리고 검색과 책탐방을 통해서 원래 저렇게 db값을 가져오는게 맞다는게 확인이 됩니다.
그렇다면 위 db값을 이용해서 해당 리스트에 떠 있는 String 값을 가지고 오려면 어떻게 해야 하나요??