zon*_*ono 52 java android android-sqlite
我正在尝试制作我的第一款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 {
/** 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();
}
}
Run Code Online (Sandbox Code Playgroud)
Kev*_*ing 59
我也遇到过SQLiteOpenHelper问题.对我有用的是存储成员变量
SQLiteDatabase db;
Run Code Online (Sandbox Code Playgroud)
在SQLiteOpenHelper子类中并调用
db = getWritableDatabase();
Run Code Online (Sandbox Code Playgroud)
在构造函数中.
这个问题的答案还包括有用的信息:SQLiteOpenHelper无法调用onCreate?
我希望这有帮助!
Jat*_*wal 24
直到你调用该方法getWritableDatabase()或getReadableDatabase()的SQLiteOpenHelper类,数据库将不会被创建.
就像你真正需要的那样,数据库将在内存中创建一样简单.:)
我有一个类似的问题,其中onCreate没有被执行.也许这对某人有用,尽管事实证明这是一个不同的问题.
我以前在数据库上工作,并且已经创建了很长一段时间.所以现在在onCreate()中进行更改后,我希望找到创建的新表.但SQLiteOpenHelper再也没有调用过onCreate().原因是,数据库已经存在.我仍在使用与之前相同的设备,因此使用现有的(旧)数据库.
但是有希望.当系统看到具有该名称的数据库已存在时,它还会检查版本号是否正确.在那种情况下,我只是忘记了数据库已经存在.我的解决方案只是更改版本号.因此,onUpgrade()被称为onCreate()更改的提供选项.
所以选项要么卸载完整的应用程序(并使用数据库),要么在升级版本号(例如删除)旧表并再次调用onCreate()之后再次调用onCreate.
在任何情况下,如果未调用onCreate(),请检查数据库是否存在两次.否则它不再被调用.
| 归档时间: |
|
| 查看次数: |
56031 次 |
| 最近记录: |