일단 DBManager 클래스에있는 테이블 생성하는 부분이고요.
public void onCreate(SQLiteDatabase db) {
// 새로운 테이블을 생성한다.
// create table 테이블명 (컬럼명 타입 옵션);
db.execSQL("CREATE TABLE IF NOT EXISTS MILEDDD_LIST( _id INTEGER PRIMARY KEY AUTOINCREMENT, date TEXT, total_mileage INTEGER, refuel_sum INTEGER, l_sum INTEGER, mileage INTEGER);");
}
그리고 이건 DBManager 클래스에서 테이블에 있는 데이터를 화면에 뿌려주는거고
public String PrintData() {
SQLiteDatabase db = getReadableDatabase();
String str = "";
Cursor cursor = db.rawQuery("select * from MILEDDD_LIST", null);
while(cursor.moveToNext()) {
str += "일시 : "
+ cursor.getString(1)
+ ", 총 주행거리 = "
+ cursor.getInt(2)
+ ", 주유 금액 = "
+ cursor.getInt(3)
+ ", 리터당 가격 = "
+ cursor.getInt(4)
+ ", 연비 = "
+ cursor.getInt(5)
+ "\n";
}
return str;
}
이게 데이터 입력받는 화면에서의 insert문 입니다.
final DBManager dbManager = new DBManager(getApplicationContext(), "miled.db", null, 1);
// DB에 저장 될 속성을 입력받는다
final EditText et_date = (EditText) findViewById(R.id.et_date);
final EditText et_total_mileage = (EditText) findViewById(R.id.et_total_mileage);
final EditText et_refuel_sum = (EditText) findViewById(R.id.et_refuel_sum);
final EditText et_l_sum = (EditText) findViewById(R.id.et_l_sum);
final EditText et_mileage = (EditText) findViewById(R.id.et_mileage);
// 쿼리 결과 입력
final TextView tvResult = (TextView) findViewById(R.id.tv_result);
// Insert
Button btnInsert = (Button) findViewById(R.id.btn_insert);
btnInsert.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// insert into 테이블명 values (값, 값, 값...);
String str_date = et_date.getText().toString();
String str_total_mileage = et_total_mileage.getText().toString();
String str_refuel_sum = et_refuel_sum.getText().toString();
String str_l_sum = et_l_sum.getText().toString();
String str_mileage = et_mileage.getText().toString();
dbManager.insert("insert into MILEDDD_LIST values(null, '" + str_date + "', " + str_total_mileage + ", " + str_refuel_sum + ", " + str_l_sum + ", " + str_mileage + ");");
tvResult.setText( dbManager.PrintData() );
}
});
문제는 빨간색으로 써놓은걸 빼면 잘돌아가는데 빨간색부분을 추가하고 데이터를 입력하고 추가한다는
버튼을 누르면 오류가 나면서 꺼지는데 왜 그런지 이유를 못찾겠습니다...
그리고 다른화면 갔다가 다시 데이터베이스에 추가하는 화면으로 오면 기존에 추가해놨던 데이터들이
안보였다가 새로운데이터를 추가하면 기존에있던거랑 추가되서 다 보여지는데 처음부터 보여지게 하려면
어떻게해야하나요?
그리고 데이터를 텍스트뷰가아닌 리스트뷰로 받고 싶은데 리스트뷰사용하려면 이것도 ArrayAdapter를
사용해야하는거죠?