Я нашел это превосходный пример класса SQLiteOpenHelper, который действительно приятно зарегистрирован, и я думаю, что могу использовать его для своего заявления; вещь, я все еще изо всех сил пытаюсь определить, существует ли база данных, созданная моим приложением уже,
My app has a main activity Java class [imaginatively named] 'ActivityMain
' which at the moment calls the void dbTest();
public void DBTest() {
SQLiteDatabase myDB = null;
/* Create a Database. */
try {
myDB = this.openOrCreateDatabase(DATABASE_NAME, MODE_PRIVATE, null);
/* Create a Table in the Database. */
myDB.execSQL("CREATE TABLE IF NOT EXISTS "
+ DATABASE_TABLE
+ " (" + KEY_ID + " integer primary key autoincrement, "
+ KEY_SCRIPT_NAME + " text, " + KEY_SCRIPT_BODY + " text, "
+ KEY_SU_NEEDED + " short);");
/* Insert data to a Table*/
myDB.execSQL("INSERT INTO "
+ DATABASE_TABLE
+ " (" + KEY_SCRIPT_NAME
+ ", " + KEY_SCRIPT_BODY
+ ", " + KEY_SU_NEEDED + ")"
+ " VALUES ('CPU information', 'cat /proc/cpuinfo', 1);");
/*retrieve data from database */
Cursor c = myDB.rawQuery("SELECT * FROM " + DATABASE_TABLE, null);
int scriptName = c.getColumnIndex("name");
//Check if our result was valid.
c.moveToFirst();
//cursor left as it came from the database because it starts at the row before the first row
ArrayList sData = new ArrayList();
if (c != null) {
do {
String Name = c.getString(scriptName);
sData.add(Name);
} while (c.moveToNext());
}
ListView lv = (ListView) findViewById(R.id.mainListView);
lv.setAdapter(new ArrayAdapter(this, android.R.layout.simple_list_item_multiple_choice, sData));
lv.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
} catch (Exception e) {
Log.e("Error", "Error", e);
} finally {
if (myDB != null)
myDB.close();
}
Там это создает базу данных вставки, линия тогда показывает его назад в ListView, в настоящее время это будет просто вставлять тот же самый ряд каждый раз, когда приложение начато так, я хочу проверить, чтобы видеть, ли база данных уже там.
Я хочу db, начинаются с некоторыми начальными значениями на там вот почему, я вставляю данные, пользователь может тогда удалить его, если им нравится
Таким образом в мой' ActivityMain
' класс я хочу звонить createDataBase ();
метод от' DatabaseHelper
' класс я использовал от связанного образца, но не может
Он что-то как:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.layout_main);
try {
createDataBase();
catch(SQLiteException e){
//database doesn't exist yet.
return false;
}
У меня есть булева функция в' ActivityMain
' класс, который хорошо работает, но я не уверен, что это - правильный способ сделать это и на самом деле должно делать все это через класс помощника
private boolean checkDatabase() {
SQLiteDatabase checkDB = null;
try {
checkDB = SQLiteDatabase.openDatabase(DB_FULL_PATH, null,
SQLiteDatabase.OPEN_READONLY);
checkDB.close();
} catch (SQLiteException e) {
//database doesn't exist yet.
return false;
}
return checkDB != null ? true : false;
}
Кто-то мог дать мне некоторые подсказки, пожалуйста?
Большое спасибо:)