例如要保存用戶的姓名和年齡兩個(gè)參數(shù),如下圖布局
“專(zhuān)業(yè)、務(wù)實(shí)、高效、創(chuàng)新、把客戶的事當(dāng)成自己的事”是我們每一個(gè)人一直以來(lái)堅(jiān)持追求的企業(yè)文化。 創(chuàng)新互聯(lián)建站是您可以信賴的網(wǎng)站建設(shè)服務(wù)商、專(zhuān)業(yè)的互聯(lián)網(wǎng)服務(wù)提供商! 專(zhuān)注于成都網(wǎng)站設(shè)計(jì)、成都做網(wǎng)站、軟件開(kāi)發(fā)、設(shè)計(jì)服務(wù)業(yè)務(wù)。我們始終堅(jiān)持以客戶需求為導(dǎo)向,結(jié)合用戶體驗(yàn)與視覺(jué)傳達(dá),提供有針對(duì)性的項(xiàng)目解決方案,提供專(zhuān)業(yè)性的建議,創(chuàng)新互聯(lián)建站將不斷地超越自我,追逐市場(chǎng),引領(lǐng)市場(chǎng)!
1.在strings.xml文件中聲明要使用到的字符串
2.在布局文件中添加
3.MainActivity的代碼如下
public class MainActivity extends Activity { private EditText nameText; private EditText ageText; private PreferencesService service; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); nameText = (EditText)this.findViewById(R.id.name); ageText = (EditText)this.findViewById(R.id.age); service = new PreferencesService(this);//每次點(diǎn)擊保存都會(huì)實(shí)例化該方法 } public void save(View v) { String name = nameText.getText().toString(); String age = ageText.getText().toString(); //PreferencesService service = new PreferencesService(this);//每次點(diǎn)擊保存都會(huì)實(shí)例化,放到啟動(dòng)方法中 service.save(name,Integer.valueOf(age)); Toast.makeText(getApplicationContext(), R.string.success, 1).show(); } }
4.PreferencesService類(lèi)的代碼如下
public class PreferencesService { private Context context; public PreferencesService(Context context) {//得到上下對(duì)象 this.context = context; } /** * 保存參數(shù) * @param name * @param age */ public void save(String name, Integer age) { //取得SharePreferences對(duì)象,通過(guò)上下文環(huán)境得到 SharedPreferences preferences = context.getSharedPreferences("gao", Context.MODE_PRIVATE); Editor editor = preferences.edit();//得到編輯器對(duì)象 editor.putString("name", name); editor.putInt("age", age);//到此數(shù)據(jù)保存在內(nèi)存中 editor.commit();//把內(nèi)存中的數(shù)據(jù)提交到文件中 } }
運(yùn)行結(jié)果產(chǎn)生的xml文件中的數(shù)據(jù)
以上即實(shí)現(xiàn)了用戶自己對(duì)軟件偏好參數(shù)的保存,那么如何讀取用戶的偏好參數(shù)呢?如用戶打開(kāi)上述軟件時(shí),顯示用戶的參數(shù)設(shè)置,如下圖
實(shí)現(xiàn)方法是,在PreferencesService類(lèi)中添加getPreferences()方法,具體代碼如下
/** * 獲取各項(xiàng)配置參數(shù) * @return 參數(shù)值 */ public MapgetPreferences(){ Map params = new HashMap (); //取得SharePreferences對(duì)象,通過(guò)上下文環(huán)境得到,"gao"是之前保存好的數(shù)據(jù)名稱,注意不帶后綴名 SharedPreferences preferences = context.getSharedPreferences("gao", Context.MODE_PRIVATE); params.put("name", preferences.getString("name", "you name")); params.put("age", String.valueOf(preferences.getInt("age", 0))); return params; }
在MainActivity類(lèi)的OnCreate()方法中添加如下代碼
//第一次運(yùn)行時(shí)顯示參數(shù) Mapparams = service.getPreferences(); nameText.setText(params.get("name")); ageText.setText(params.get("age"));
當(dāng)再次執(zhí)行時(shí),用戶輸入新的數(shù)據(jù)并點(diǎn)擊保存,那么就會(huì)保存最近的用戶輸入的數(shù)據(jù)。
注:附件文章中的代碼。