参考博客:http://blog.youkuaiyun.com/listening_music/article/details/6611786
SharedPreferences的使用非常简单,能够轻松的存放数据和读取数据。SharedPreferences只能保存简单类型的数据,例如,String、int等。一般会将复杂类型的数据转换成Base64编码,然后将转换后的数据以字符串的形式保存在 XML文件中,再用SharedPreferences保存。
使用SharedPreferences保存key-value对的步骤如下:
(1)使用Activity类的getSharedPreferences方法获得SharedPreferences对象,其中存储key-value的文件的名称由getSharedPreferences方法的第一个参数指定。
(2)使用SharedPreferences接口的edit获得SharedPreferences.Editor对象。
(3)通过SharedPreferences.Editor接口的putXxx方法保存key-value对。其中Xxx表示不同的数据类型。例如:字符串类型的value需要用putString方法。
(4)通过SharedPreferences.Editor接口的commit方法保存key-value对。commit方法相当于数据库事务中的提交(commit)操作。
文件保存的路径是:/data/data/com.test.sample/shared_prefs/
具体代码的书写流程为:
A、存放数据信息
1、打开Preferences,名称为setting,如果存在则打开它,否则创建新的Preferences
SharedPreferences settings = getSharedPreferences(“setting”, 0);
2、让setting处于编辑状态
SharedPreferences.Editor editor = settings.edit();
3、存放数据
editor.putString(“name”,”ATAAW”);
editor.putString(“URL”,”ATAAW.COM”);
4、完成提交
editor.commit();
B、读取数据信息
1、获取Preferences
SharedPreferences settings = getSharedPreferences(“setting”, 0);
2、取出数据
String name = settings.getString(“name”,”默认值”);
String url = setting.getString(“URL”,”default”);
public class MainActivity extends Activity {
private EditText et_name;
private EditText et_pass;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(com.ldw.SharedPreferences.R.layout.activity_main);
et_name = (EditText) findViewById(R.id.et_name);
et_pass = (EditText) findViewById(R.id.et_pass);
read();
}
//读取文件
public void read(){
//使用api读取路径
//File file = new File("data/data/com.ldw.rwinrom/12.txt");
File file = new File(getFilesDir(),"info.txt");
if(file.exists()){
try {
SharedPreferences sp = getSharedPreferences("info",MODE_PRIVATE);
String name = sp.getString("name", "");
String pass = sp.getString("pass", "");
et_name.setText(name);
et_pass.setText(pass);
System.out.println("-----");
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
//点击登陆写文件
public void login(View v){
CheckBox cb = (CheckBox) findViewById(R.id.cb);
String name = et_name.getText().toString();
String pass = et_pass.getText().toString();
if(cb.isChecked()){
//使用SharedPreferences保存用户名和密码
//路径data/data/com.ldw.SharedPreferences/share_prefls
SharedPreferences sp = getSharedPreferences("info" , MODE_PRIVATE);
//拿到sp编辑器
Editor ed = sp.edit();
ed.putString("name", name);
ed.putString("pass", pass);
//提交
ed.commit();
}
Toast.makeText(this, "登陆成功", Toast.LENGTH_SHORT).show();
}