android:动态添加SharedPreference KEY

时间:2013-06-06 05:24:23

标签: android sharedpreferences

我有一个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代码

4 个答案:

答案 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, "");
        }    
    }