0

我有一个 SharedPreferences 文件“myprefs”。然后我使用编辑器来编辑文件的字段。

        SharedPreferences.Editor editor = pref.edit();
//some codes to edit values
    editor.commit();

我的问题是,我可以通过编码添加一个KEY字段吗?

例如:- 我有 2 个键名称和年龄

<Preference android:defaultValue="0" android:key="name"/>
<Preference android:defaultValue="0" android:key="age"/>

我必须通过 java 代码再添加一个关键的“电子邮件” 。

4

4 回答 4

2

以下将添加电子邮件地址...

SharedPreferences.Editor editor = pref.edit();
editor.putString("email", "email@email.com");
editor.commit();

有关向 SharedPreferences 添加不同数据类型的信息,请参阅DOCS

于 2013-06-06T05:35:09.383 回答
1

你当然可以。只需.put(..)在编辑器上调用一个方法,然后再调用commit()。您需要传递 aString作为键和相应的值。关键可以是任何东西。如果首选项中还没有这样的值,那么框架将为您创建它。

于 2013-06-06T05:27:40.787 回答
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
于 2013-06-06T05:33:16.097 回答
0

当我需要使用 sharedPrefrance 时,我要做的是创建一个 pref 类并将我的 pref 代码用于完整的应用程序。我添加了我的首选类代码之一。你可以参考一下。在您的情况下,您可以通过简单地传递密钥名称来添加密钥名称。

像:

public void setEmailPref(String prfKey,String value){
       prefsEditor.putString( prfKey, value );
            prefsEditor.commit();
}

首选类别:

 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, "");
        }    
    }
于 2013-06-06T05:33:58.150 回答