Android SQLiteOpenHelper: 为什么onCreate()方法没有被调用?

20 浏览
0 Comments

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();
        }
    }
}

0