SharedPreferences prefs = getSharedPreferences("SharedPreferences prefs = getSharedPreferences(MY_PREFS_NAME, MODE_PRIVATE);
String restoredText = prefs.getString("firstusername", null);
if (restoredText != null) {
String name1 = prefs.getString("firstusername", "No name defined");
// for seconduser retriving
SharedPreferences prefs = getSharedPreferences("SharedPreferences prefs = getSharedPreferences("secon user", MODE_PRIVATE);
String restoredText = prefs.getString("secondtusername", null);
if (restoredText != null) {
String name2 = prefs.getString("secondtusername", "No name defined");
}。そうでなければ、あなたはそれを維持しなければならない。
SharedPreferences
utilクラスを使用すると、すべてを処理できます。私はそれをsingleton
とし、enum
を使ってtype-safety
を確実にしました。
public class SharedPreferencesUtil
{
public enum KEY
{
FIRST_TIME_USER("first_time"),
REGISTERED_USER("registered"),
SKIPPED_REGISTRATION("is_skipped_registration"),
DEVICE_INFO("device_information"),
DEVICE_LATITUDE("device_latitude"),
DEVICE_LONGITUDE("device_longitude"),
ONLINE_APPS("online_apps");
private final String value;
KEY(String value)
{
this.value = value;
}
public String getValue()
{
return this.value;
}
}
private static SharedPreferencesUtil sharedPreferencesUtil = null;
private static SharedPreferences sharedPreferences = null;
private SharedPreferencesUtil(Context context, String spName)
{
sharedPreferences = QCleaner.getInstance().getActivity().getSharedPreferences("mobi_pref", Context.MODE_PRIVATE);
}
public static synchronized SharedPreferencesUtil getInstance(Context context, String spName)
{
if(sharedPreferencesUtil == null)
{
sharedPreferencesUtil = new SharedPreferencesUtil(context, pName);
}
return sharedPreferencesUtil;
}
public boolean hasKey(KEY key)
{
boolean isKeyExist = false;
/*if(sharedPreferences.contains(key.getValue()) && !TextUtils.isEmpty(sharedPreferences.getString(key.getValue(), "")))
{
isKeyExist = true;
}*/
if(sharedPreferences.contains(key.getValue()))
{
isKeyExist = true;
}
return isKeyExist;
}
public boolean saveString(KEY key, String value)
{
return sharedPreferences.edit().putString(key.getValue(), value).commit();
}
public boolean saveInt(KEY key, int value)
{
return sharedPreferences.edit().putInt(key.getValue(), value).commit();
}
public boolean saveBoolean(KEY key, boolean value)
{
return sharedPreferences.edit().putBoolean(key.getValue(), value).commit();
}
public boolean saveFloat(KEY key, float value)
{
return sharedPreferences.edit().putFloat(key.getValue(), value).commit();
}
public boolean saveDataLong(KEY key, long value)
{
return sharedPreferences.edit().putLong(key.getValue(), value).commit();
}
/*public boolean saveDataStringSetInSharedPreference(String key, Set value)
{
return sharedPreferences.edit().putStringSet(key, value).commit();
}*/
public String getString(KEY key)
{
if(sharedPreferences.contains(key.getValue()))
{
return sharedPreferences.getString(key.getValue(), "");
}
else
{
return null;
}
}
public boolean getBoolean(KEY key)
{
if(sharedPreferences.contains(key.getValue()))
{
return sharedPreferences.getBoolean(key.getValue(), false);
}
else
{
return false;
}
}
public float getFloat(KEY key)
{
if(sharedPreferences.contains(key.getValue()))
{
return sharedPreferences.getFloat(key.getValue(), 0.0f);
}
else
{
return 0.0f;
}
}
public float getLong(KEY key)
{
if(sharedPreferences.contains(key.getValue()))
{
return sharedPreferences.getLong(key.getValue(), 0L);
}
else
{
return 0L;
}
}
public boolean removeKey(KEY key)
{
boolean isDeleted = false;
if(sharedPreferences.contains(key.getValue()))
{
isDeleted = sharedPreferences.edit().remove(key.getValue()).commit();
}
return isDeleted;
}
}
この使い方は?
SharedPreferencesUtil.getInstance(context, your_shared_preference_name).saveString(SharedPreferencesUtil.KEY.ONLINE_APPS, object.toString());
あなたは、単一の名前の共有プリファレンスを使用している場合、あなたはそれをカスタマイズすることができ、あなたがcontext
とsharedpreference
名前たびに渡す必要はありません。
新しいユーザーごとにshareprefrenceキー名を変更して、特定のユーザーデータを保存して取得するようにします –
@SaurabhBhandari新しいユーザーを取得する方法を教えてください。私はユーザーの名前やIDを意味しますか? –
shareprefrenceキーのusernameのような一意のキーを使用してください。ユーザーが対応するキー –