db에 있는 값을 랜덤으로 select 해서 그값을 따로 저장하고 그렇게 저장된 값을 리스트뷰에 뿌려 줄려고 합니다.
public void save(){
sHelper = new SaveDBHelper(IndianName.this);
Cursor c;
SQLiteDatabase db2 = sHelper.getWritableDatabase();
c = db2.rawQuery("select * from save", null);
int v=0;
while(c.moveToNext()){
String aa = c.getString(0);
Result[v] = aa;
v++;
}
System.out.println(Result[v]);
// Log.i("cursorlog","cursor"+c);
startManagingCursor(c);
SimpleCursorAdapter Adapter = null;
Adapter = new SimpleCursorAdapter(IndianName.this,android.R.layout.simple_list_item_2,c,new String[]{"name","date"},new int[]{android.R.id.text1,android.R.id.text2});
ListView slist = (ListView)findViewById(R.id.StorageListView);
slist.setAdapter(Adapter);
slist.setChoiceMode(ListView.CHOICE_MODE_SINGLE);
}
class SaveDBHelper extends SQLiteOpenHelper{
public SaveDBHelper(Context context) {
super(context, "save.db", null, 1);
// TODO Auto-generated constructor stub
// System.out.println("1");
}
public void onCreate(SQLiteDatabase db2){
// System.out.println("1");
db2.execSQL("create table save(_id integer primary key autoincrement,name TEXT,date TEXT);");
System.out.println("1");
// Log.d("", Result[mSelect].toString());
// Toast.makeText(IndianName.this, Result[mSelect], Toast.LENGTH_SHORT).show();
db2.execSQL("insert into save values(null,"+Result[mSelect]+","+date+");");
// db2.execSQL("select * from save");
}
public void onUpgrade(SQLiteDatabase db2,int oldVersion, int newVersion ){
db2.execSQL("drop table if exists save");
onCreate(db2);
}
}
코딩은 이렇게 했는데요. 돌려보면 리스트뷰 layout화면으로는 가는데 저장 된 값은 보이지 않고요.
로그로 찍어보면 이상한 주소값만 있는듯 합니다.
db를 밖에서 만들어서 넣어준 것은
c = db2.rawQuery("select * from save", null);
int v=0;
while(c.moveToNext()){
String aa = c.getString(0);
Result[v] = aa;
v++;
이런 식으로하면 한글로 잘 읽어오는데..
어떻게 수정해야 할지 감이 잘 안잡히네요...
도와주십쇼..ㅠㅠ
찍었을 때 로그창에
주소 값이 아니라 한글이 깨져서 나오는 것 처럼 나옵니다.