Je suis en train de faire ma première application Android. J'ai remarqué que la méthode SQLiteOpenHelper.onCreate()
n'est pas appelée pour créer des tables si la base de données n'existe pas. Cependant, la méthode onCreate()
n'a pas fonctionné même si j'ai essayé de déboguer.
Veuillez regarder le code ci-dessous et me donner des suggestions. Toute aide sera appréciée.
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 {
/** Nom de la base de données */
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();
}
}
0 votes
Avez-vous essayé de mettre un log pour voir? Comment êtes-vous sûr que le onCreate() est appelé? Si vous définissez des points d'arrêt, ils n'atteignent généralement pas cette méthode dans le DB helper, d'après mon observation.