Android SQLiteOpenHelper: 为什么onCreate()方法没有被调用?
Android SQLiteOpenHelper: 为什么onCreate()方法没有被调用?
我正在尝试制作我的第一个Android应用程序。我注意到如果数据库不存在,SQLiteOpenHelper.onCreate()
方法不会被调用来创建表。然而,即使我尝试调试,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 { /** 数据库名称 */ private static final String DB_NAME = "pinyin"; /** 创建表的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(); } } }