-1

プログラムで初めて SQLite DB をセットアップするにはどうすればよいですか? これを行うためのプログラム構造は何ですか?

私が考えることができる唯一の方法は、初めてブール値を保持することです:

if (isFirstInstall) setup();

これは非常に専門的ではないようです。この種のセットアップが行われる onFirstInstall() 呼び出しはありますか?

4

4 に答える 4

2

ブール値を SharedPreferences に格納し、アプリケーションの起動時に (初回かどうかにかかわらず) 値を確認できます。

sharedPreferencesのドキュメントを確認してください

このスレッドがお役に立てば幸いです

于 2012-05-30T05:17:19.250 に答える
2

これを試して

private SharedPreferences mPreferences;

    boolean firstTime = mPreferences.getBoolean("firstTime", true);
    if (firstTime) { 
        SharedPreferences.Editor editor = mPreferences.edit();
        editor.putBoolean("firstTime", false);
        editor.commit();
        showMiddleActivity();
    }
于 2012-05-30T05:28:01.970 に答える
0

このコードで試すことができます。

checkFirstLaunch(); を呼び出します。onCreate() から。

private boolean checkFirstLaunch() {
        try {
            PackageInfo info = getPackageManager().getPackageInfo(getPackageName(), 0);
            //int currentVersion = info.versionCode;
            SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
            int lastVersion = prefs.getInt(PreferencesActivity.KEY_HELP_VERSION_SHOWN, 0);
            if (lastVersion == 0) {
                isFirstLaunch = true;
            } else {
                isFirstLaunch = false;
            }

        } catch (PackageManager.NameNotFoundException e) {
            Log.w(TAG, e);
        }
        return false;
    }

ブール値の結果が得られます。

if (isFirstLaunch) {
    //code    
}
于 2012-05-30T05:19:52.703 に答える
0

初めて起動するかどうかを判断する代わりに、データベースが存在するかどうかを確認し、存在しない場合は作成することができます。

public void createDataBase() throws IOException {
    if ( checkIfDataBaseExist() ) {
        // db exists, do nothing
    } else {
        // By calling this method and empty database will be created into
        // the default system path of your application
        this.getReadableDatabase();
        try {
            // Do you db copying here
        } catch (IOException e) {
            throw new Error("Error copying database");
        }
    }
}

private boolean checkIfDataBaseExist() {
    File dbFile = new File(DB_PATH + DB_NAME);
    return dbFile.exists();
}
于 2012-05-30T06:25:20.960 に答える