Sqlite 작업에 사용될 클래스 DatabaseInterface
을 생성했습니다. DatabaseInterface.onCreate()
(어디에서 테이블을 만들었습니까?)이 클래스의 개체를 만들 때 메서드가 실행되지 않습니다.Sqlite 데이터베이스 사용. onCreate() 메서드가 실행되지 않습니다
내가 다른 클래스 FirstTimeActivity
public class FirstTimeActivity extends Activity{
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
DatabaseInterface db = new DatabaseInterface(this);
}
}
에 DatabaseInterface
의 객체를 생성 한 다음은 DatabaseInteface
의 클래스 정의이다. OnCreate()
메서드가 실행되지 않아 내 테이블이 만들어지지 않습니다. 데이터베이스가 이미 작성되었습니다. 당신이 DatabaseInterface 객체에 getWritableDatabase()를 호출 할 때까지 데이터베이스가 실제로 만들어지지 않습니다
public class DatabaseInterface extends SQLiteOpenHelper{
private static String DB_NAME = "SMS_DB";
private static int DB_VERSION = 1;
private String TABLE_NAME = "SENT_ITEMS";
private String COLUMN_ID = "S_NO";
private String COLUMN_MESSAGE = "MESSAGE";
private String COLUMN_DATETIME = "DATE_TIME";
//creates the database
public DatabaseInterface(Context context) {
super(context, DB_NAME, null, DB_VERSION);
Log.d("Creating Database: ", "Creating Database");
}
@Override
public void onCreate(SQLiteDatabase db) {
Log.d("Creating Table: ", "Creating Table");
String create_table = "CREATE TABLE "+ TABLE_NAME + " ("+ COLUMN_ID +" INTEGER PRIMARY KEY, " + COLUMN_MESSAGE + " TEXT, " + COLUMN_DATETIME + "TEXT NOT NULL); ";
db.execSQL(create_table);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
public void insertIntoDB(String message)
{
SQLiteDatabase db = this.getWritableDatabase();
ContentValues values = new ContentValues();
//get current date and time
Calendar current_time = Calendar.getInstance();
//current_time.getTime();
String Cure = current_time.toString();
Log.d("Current_Date_time: ", Cure);
values.put(COLUMN_MESSAGE, message);
values.put(COLUMN_DATETIME, "ad");
db.insert("TEST", null, values);
db.close(); // Closing database connection
}
};
나는 데이터베이스가 실제로 생성 될 때 'openOrCreate'와 그와 비슷한 것으로 생각했다. 참조 된 것과 반대입니다. – Doomsknight
@Martyn 나는 insertIntoDB() 메서드가 빠졌습니다. SQLiteDatabase db = this.getWritableDatabase(); – swastican
@Martyn 내가 시험해 보도록하겠습니다. 감사. – swastican