我有一个SharedPreferences文件'myprefs'。然后我使用编辑器编辑文件的值字段。
SharedPreferences.Editor editor = pref.edit();
//some codes to edit values
editor.commit();
我的问题是,我可以添加一个 KEY 字段通过编码吗?
例如: - 我有两个按键名称&年龄如
<Preference android:defaultValue="0" android:key="name"/>
<Preference android:defaultValue="0" android:key="age"/>
我必须再添加一个关键的'电子邮件'通过java代码。
答案 0 :(得分:2)
以下内容将添加电子邮件地址...
SharedPreferences.Editor editor = pref.edit();
editor.putString("email", "email@email.com");
editor.commit();
有关向SharedPreferences添加不同数据类型的信息,请参阅DOCS。
答案 1 :(得分:1)
当然可以。只需在编辑器上调用.put(..)
方法,然后再调用commit()
。您需要传递String
作为键和相应的值。关键可以是任何东西。如果首选项中没有这样的值,那么框架将为您创建它。
答案 2 :(得分:0)
要写入sharedPreference文件:
SharedPreferences app_preferences = PreferenceManager.getDefaultSharedPreferences(this);
SharedPreferences.Editor editor = app_preferences.edit();
editor.putString("name", "Nizam");
editor.putInt("age", "39");
editor.commit(); // Very important
从sharedPreference文件中读取:
SharedPreferences app_preferences1 = PreferenceManager.getDefaultSharedPreferences(this);
String name = app_preferences1.getString(name, "no name avail");//the first paramenter is the key for which you need the value.. the second one will be returned if the value for that key is not found
答案 3 :(得分:0)
当我需要使用sharedPrefrance时,我做的是创建一个pref类并将我的pref代码放到完整的应用程序中。我添加了一个我的pref类代码。你可以参考一下。 在您的情况下,您只需传递键名即可添加键名。
像:
public void setEmailPref(String prfKey,String value){
prefsEditor.putString( prfKey, value );
prefsEditor.commit();
}
pref课程:
public class GreetingCardData {
public static final String SHARED_PREF_FILE = "greetingCardData";
public static final String KEY_DO_NOT_SHOW = "doNotShow";
public static final String KEY_CATEGORIES_JSON = "categoriesJson";
private SharedPreferences sharedPrefs;
private Editor prefsEditor;
public GreetingCardData(Context context) {
this.sharedPrefs = context.getSharedPreferences(SHARED_PREF_FILE, 0);
this.prefsEditor = sharedPrefs.edit();
}
public void setDoNotShowFlag ( boolean flag ){
prefsEditor.putBoolean( KEY_DO_NOT_SHOW, flag );
prefsEditor.commit();
}
public boolean getDoNotShowFlag(){
return sharedPrefs.getBoolean( KEY_DO_NOT_SHOW, false );
}
public void setGreetingcardJson( String jsonString ){
prefsEditor.putString( KEY_CATEGORIES_JSON, jsonString );
prefsEditor.commit();
}
public String getGreetingcardJsonString(){
return sharedPrefs.getString(KEY_CATEGORIES_JSON, "");
}
}