ユーザー設定を保存する共有設定アクティビティを作成しました。アクティビティまたは通常の値を取得したいJava class.please解決策または例を提供してください。 。
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
SharedPreferences channel=this.getSharedPreferences(strFile, Context.MODE_PRIVATE);
strChannel=channel.getString(keyChannel,"Default").toString();
Toast.makeText(getApplicationContext(), strChannel, Toast.LENGTH_LONG).show();
}
このコードではstrfile
が例です。 com.Android.pack.ClassName
は取得する値のSharedPreference Activity
であり、keyChannelはSharedPreference Activity
と同じキーです。
ソリューションを提供してください。
値を保存したSharedPreferenceActivityがある場合
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
String imgSett = prefs.getString(keyChannel, "");
値がアクティビティのSharedPreferenceに保存されている場合、これが値を保存する正しい方法です。
SharedPreferences shared = getSharedPreferences(PREF_NAME, MODE_PRIVATE);
SharedPreferences.Editor editor = shared.edit();
editor.putString(keyChannel, email);
editor.commit();// commit is important here.
これが値を取得する方法です。
SharedPreferences shared = getSharedPreferences(PREF_NAME, MODE_PRIVATE);
String channel = (shared.getString(keyChannel, ""));
また、Activity以外のクラスでも同様に行うことができますが、唯一の条件は、Activityのコンテキストを渡す必要があることです。このコンテキストを使用してSharedPreferencesを取得します。
mContext.getSharedPreferences(PREF_NAME, MODE_PRIVATE);
アクティビティから共有設定を取得するためにこのコードを試しましたが、動作させることができませんでした:
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this);
sharedPreferences.getAll();
Log.d("AddNewRecord", "getAll: " + sharedPreferences.getAll());
Log.d("AddNewRecord", "Size: " + sharedPreferences.getAll().size());
プリファレンスアクティビティによって14のプリファレンスが保存されていても、試行するたびにプリファレンスは0を返しました。私は最終的に答えを見つけました。これをonCreateセクションの設定に追加しました。
getPreferenceManager()。setSharedPreferencesName( "defaultPreferences");
このステートメントを追加した後、保存した設定が期待どおりに返されました。これが、私と同じ問題を経験する可能性のある他の人に役立つことを願っています。
これは私にとって最も簡単な手順です:
SharedPreferences sp = getSharedPreferences("MySharedPrefs", MODE_PRIVATE);
SharedPreferences.Editor e = sp.edit();
if (sp.getString("sharedString", null).equals("true")
|| sp.getString("sharedString", null) == null) {
e.putString("sharedString", "false").commit();
// Do something
} else {
// Do something else
}
アプリをアンインストールして、sharedPreferences名を変更してから、このアプリケーションを実行します。問題は解決すると思います。
SharedPreferencesから値を取得するサンプルコード。次のコードセットを使用できます。
SharedPreferences shared = getSharedPreferences(PREF_NAME, MODE_PRIVATE);
String channel = (shared.getString(keyValue, ""));