我正在嘗試製作我的第一個Android應用程序。我注意到如果數據庫不存在,則不調用SQLiteOpenHelper.onCreate()
方法來創建表。但是,onCreate()
方法甚至認爲我嘗試調試都不起作用。Android SQLiteOpenHelper:爲什麼不調用onCreate()方法?
請看下面的代碼,並給我任何建議。任何幫助將不勝感激。
public class NameToPinyinActivity extends Activity {
DatabaseOpenHelper helper = null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.nametopinyin);
Button searchButton = (Button) findViewById(R.id.search);
searchButton.setOnClickListener(new ButtonClickListener());
helper = new DatabaseOpenHelper(NameToPinyinActivity.this);
}
public class DatabaseOpenHelper extends SQLiteOpenHelper {
/** DB Name */
private static final String DB_NAME = "pinyin";
/** CREATE TABLE SQL */
private static final String CREATE_TABLE_SQL = "CREATE TABLE UNICODE_PINYIN"
+ "(ID INTEGER PRIMARY KEY AUTOINCREMENT, "
+ "UNICODE TEXT NOT NULL, PINYIN TEXT NOT NULL)";
public DatabaseOpenHelper(Context context) {
super(context, DB_NAME, null, 1);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.beginTransaction();
try {
db.execSQL(CREATE_TABLE_SQL);
db.setTransactionSuccessful();
} catch (Exception e) {
e.printStackTrace();
} finally {
db.endTransaction();
}
}
您是否嘗試設置日誌語句並查看?什麼使你確定onCreate()被調用?如果你設置了斷點,在我的觀察中,他們不傾向於在DB助手中使用該方法。 – Suchi