안드로이드 스튜디오 sqlite 연동 질문
본문
안녕하세요 안드로이드 스튜디오로 앱을 개발하고잇는 초보 개발자입니다
datepicker 에서 선택한 날짜와 edittext에 작성한 글을 데이터베이스에 저장하는 코드입니다
package com.example.dbtest2;
import androidx.appcompat.app.AppCompatActivity;
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.Button;
import android.widget.DatePicker;
import android.widget.EditText;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
myDBHelper myHelper;
DatePicker dp;
Button bt1;
SQLiteDatabase sqlDB;
EditText Et1;
int cYear ;
int cMonth ;
int cDay ;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
dp =(DatePicker) findViewById(R.id.dpker1);
bt1 = (Button)findViewById(R.id.button1);
Et1 = (EditText) findViewById(R.id.et1);
myHelper = new myDBHelper(this);
dp.init(dp.getYear(), dp.getMonth(), dp.getDayOfMonth(), new DatePicker.OnDateChangedListener() {
@Override
public void onDateChanged(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
cYear = year;
cMonth = monthOfYear+1;
cDay = dayOfMonth;
}
});
bt1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
sqlDB = myHelper.getWritableDatabase();
sqlDB.execSQL("INSERT INTO diaryTBL(dYear,dMonth,dDay,dinfo) VALUES ('" + cYear + "', '" + cMonth + "','" + cDay + "','"+ Et1.getText().toString() +"' );");
sqlDB.close();
Toast.makeText(getApplicationContext(), "입력됨",
Toast.LENGTH_SHORT).show();
}
});
}
public class myDBHelper extends SQLiteOpenHelper {
public myDBHelper(Context context) {
super(context, "diary8DB", null, 1);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("CREATE TABLE diaryTBL ( dYear INTEGER PRIMARY KEY,dMonth INTEGER,dDay INTEGER, dinfo CHAR(100));");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("DROP TABLE IF EXISTS diaryTBL");
onCreate(db);
}
}
}

AVD로 앱을 실행하여 날짜선택과 글 입력후 버튼을누르면 데이터베이스가 생성되며 데이터가 저장이 되고있습니다 근데 문제는 처음실행해서 처음 버튼을 클릭했을때 한번만 저장이되고 그 다음부터는 저장이 안됩니다..
원하는건 버튼을 누를때마다 테이블에 데이터를 저장하는것인데 무엇이 문제인지 모르겠습니다..
코드에서 문제가 되는부분이 있다면 알려주세요 ㅜㅜ
답변을 작성하시기 전에 로그인 해주세요.