현재 소스는 데이터베이스에있는 내용이 리스트뷰의 한행에 모두 출력됩니다.
한행에 하나의 데이터만 출력되게 하려면 어떻게 접근해야하나요 ㅠ 도움좀주세요 ㅠ
package com.cookandroid.exam18;
import java.util.ArrayList;
import android.app.Activity;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ListView;
public class SecondActivity extends Activity {
myDBHelper myHelper;
SQLiteDatabase sqlDB;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.second);
Button btn = (Button) findViewById(R.id.btn);
final ArrayList<String> mldList = new ArrayList<String>();
ListView list = (ListView) findViewById(R.id.listView1);
final ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1, mldList);
list.setAdapter(adapter);
myHelper = new myDBHelper(this);
btn.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
sqlDB = myHelper.getReadableDatabase();
Cursor cursor;
cursor = sqlDB.rawQuery("SELECT * FROM aaaTable;", null);
String strNames = "그룹이름" + "\r\n" + "--------" + "\r\n";
while (cursor.moveToNext()) {
strNames += cursor.getString(0) + "\r\n";
}
mldList.add(strNames);
adapter.notifyDataSetChanged();
cursor.close();
sqlDB.close();
}
});
}
public class myDBHelper extends SQLiteOpenHelper {
public myDBHelper(Context context) {
super(context, "aaaDB", null, 1);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("CREATE TABLE aaaTable ( gName CHAR(20) PRIMARY KEY);");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("DROP TABLE IF EXISTS aaaTable");
onCreate(db);
}
}
}
전체 소스입니다.
커서를 조정해야할것같은데 어렵내요 ㅠ