1

PreferenceActivityアプリのすべての設定を保持する があります。Mainこれらの設定をアクティビティで使用したい場合は、次を使用します。

prefScreen = PreferenceManager.getDefaultSharedPreferences(this);
String lang = prefScreen.getString("language_list", null);

今、私がそれを行い、アプリを史上初のデバイス上での実行 (キャッシュなし) として実行すると、すぐにクラッシュします。しかし、アクティビティの最初にPreferenceActivity(using ) を呼び出して、それ自体に戻ると、コードを編集して再度実行しても、非常にうまく動作します。アプリのキャッシュを手動でクリアすると、問題が再び発生します。最初の実行時に常に呼び出す必要がありますか?! 何か不足していますか?startActivity()MainMainPreferenceActivity

注:私はLogこれを自分自身に確認していました。最初の実行前は、prefScreen.contains("language_list")は常に と等しくなりfalseます。そして、私が呼び出した後PreferenceActivity、それは になりtrueます。

4

2 に答える 2

3

メインで setDefaultValues を呼び出して、使用する前にデフォルト値を設定する必要があります

PreferenceManager.setDefaultValues (Context context, int resId, boolean readAgain)
于 2013-05-11T03:57:34.417 に答える