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 Map getPreferences(){
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()方法中添加如下代码
//第一次运行时显示参数
Map params = service.getPreferences();
nameText.setText(params.get("name"));
ageText.setText(params.get("age")); 当再次执行时,用户输入新的数据并点击保存,那么就会保存最近的用户输入的数据。
注:附件文章中的代码。
附件:http://down.51cto.com/data/2364229
标题名称:SharedPreferences保存、显示用户偏好设置
文章URL:http://www.jxjierui.cn/article/ihhjjj.html


咨询
建站咨询
