运行效果:
工程目录:
核心代码:
(1)MainActivity.java
<span style="font-size:14px;">public class MainActivity extends Activity {
private EditText nameText;
private EditText ageText;
private PreferenceService service;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
nameText = (EditText)this.findViewById(R.id.name);
ageText = (EditText)this.findViewById(R.id.age);
//参数保存的过程就是业务处理的过程
service = new PreferenceService(this);
Map<String,String> params = service.getPreferences();
nameText.setText(params.get("name"));
ageText.setText(params.get("age"));
}
public void save(View v){
String name = nameText.getText().toString();
String age = ageText.getText().toString();
service.save(name,Integer.valueOf(age));
Toast.makeText(getApplicationContext(), "保存完成", Toast.LENGTH_LONG).show();
}
}</span>
(2)PreferenceService.java
<span style="font-size:14px;">public class PreferenceService {
private Context context;
public PreferenceService(Context context) {
super();
this.context = context;
}
/**
* 采用SharedPreferences保存用户输入的参数
* @param name 用户名
* @param age 密码
*/
public void save(String name, Integer age) {
/*第一个参数是给定文件名称,值得注意的是文件名不能带后缀名。因为它内部会自动加上.xml后缀名。
文件存放在/data/data/<package name>/shared_prefs目录下*/
SharedPreferences preference = context.getSharedPreferences("gjj", Context.MODE_PRIVATE);
//获取编辑器,通过编辑器存放数据
Editor editor = preference.edit();
editor.putString("name", name);
editor.putInt("age", age);//目前数据是存放在内存中的,还没有存放到xml文件中
editor.commit();
}
/**
* @return 获取各项配置参数
*/
public Map<String,String> getPreferences(){
Map<String, String> params = new HashMap<String, String>();
SharedPreferences preference = context.getSharedPreferences("gjj", Context.MODE_PRIVATE);
params.put("name", preference.getString("name", ""));
params.put("age",String.valueOf(preference.getInt("age", 0)));
return params;
}
}</span>
下载源代码