SharedPreferences保存、显示用户偏好设置
例如要保存用户的姓名和年龄两个参数,如下图布局
“专业、务实、高效、创新、把客户的事当成自己的事”是我们每一个人一直以来坚持追求的企业文化。 创新互联建站是您可以信赖的网站建设服务商、专业的互联网服务提供商! 专注于成都网站设计、成都做网站、软件开发、设计服务业务。我们始终坚持以客户需求为导向,结合用户体验与视觉传达,提供有针对性的项目解决方案,提供专业性的建议,创新互联建站将不断地超越自我,追逐市场,引领市场!
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);//每次点击保存都会实例化该方法 } public void save(View v) { String name = nameText.getText().toString(); String age = ageText.getText().toString(); //PreferencesService service = new PreferencesService(this);//每次点击保存都会实例化,放到启动方法中 service.save(name,Integer.valueOf(age)); Toast.makeText(getApplicationContext(), R.string.success, 1).show(); } }
4.PreferencesService类的代码如下
public class PreferencesService { private Context context; public PreferencesService(Context context) {//得到上下对象 this.context = context; } /** * 保存参数 * @param name * @param age */ public void save(String name, Integer age) { //取得SharePreferences对象,通过上下文环境得到 SharedPreferences preferences = context.getSharedPreferences("gao", Context.MODE_PRIVATE); Editor editor = preferences.edit();//得到编辑器对象 editor.putString("name", name); editor.putInt("age", age);//到此数据保存在内存中 editor.commit();//把内存中的数据提交到文件中 } }
运行结果产生的xml文件中的数据
以上即实现了用户自己对软件偏好参数的保存,那么如何读取用户的偏好参数呢?如用户打开上述软件时,显示用户的参数设置,如下图
实现方法是,在PreferencesService类中添加getPreferences()方法,具体代码如下
/** * 获取各项配置参数 * @return 参数值 */ public MapgetPreferences(){ Map params = new HashMap (); //取得SharePreferences对象,通过上下文环境得到,"gao"是之前保存好的数据名称,注意不带后缀名 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类的OnCreate()方法中添加如下代码
//第一次运行时显示参数 Mapparams = service.getPreferences(); nameText.setText(params.get("name")); ageText.setText(params.get("age"));
当再次执行时,用户输入新的数据并点击保存,那么就会保存最近的用户输入的数据。
注:附件文章中的代码。
附件:http://down.51cto.com/data/2364229
当前文章:SharedPreferences保存、显示用户偏好设置
标题来源:http://lswzjz.com/article/ihhjjj.html