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