1、新建一个MySharedPreference 工具类
具体代码如下:
package com.example.login;
import android.content.Context;
import android.content.SharedPreferences;
import android.text.TextUtils;
public class MySharedPreference {
public static boolean saveUserInfo(Context context,String xmlName, String key, String value){
try {
SharedPreferences sp = context.getSharedPreferences(xmlName, Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sp.edit();
editor.putString(key, value);
editor.commit();
return true;
} catch (Exception e) {
e.printStackTrace();
}
return false;
}
public static String getUserInfo(Context context,String xmlName, String key){
try {
SharedPreferences sp = context.getSharedPreferences(xmlName,Context.MODE_PRIVATE);
String value = sp.getString(key, null);
if(!TextUtils.isEmpty(value)){
return value;
}
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
}
2、使用方法:
saveUserInfo(Context context,String xmlName, String key, String value)
Context context 可传入 MainActivity.this 参数
String xmlName 为保存的文件名
String key, String value 为键值对
3、示例:
在onCreate中从xml文件读取数据,回显在页面上,并开启按钮的监听器
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
loginButton = (Button) findViewById(R.id.loginButton);
E_userName = (EditText) findViewById(R.id.userName);
E_userPassword = (EditText) findViewById(R.id.userPassword);
C_remember = (CheckBox) findViewById(R.id.checkBox);
//第一次启动可能没有remember这个字段,需要进行处理(新增)
try {
String getr = MySharedPreference.getUserInfo(MainActivity.this, "user", "remember");
Boolean aa = getr.equals("yes");
} catch (Exception e) {
MySharedPreference.saveUserInfo(MainActivity.this, "user", "remember", "yes");
}
String getr = MySharedPreference.getUserInfo(MainActivity.this, "user", "remember");
try {
if (getr.equals("yes")) {
userName = MySharedPreference.getUserInfo(MainActivity.this, "user", "userName");
E_userName.setText(userName);
userPassword = MySharedPreference.getUserInfo(MainActivity.this, "user", "userPassword");
E_userPassword.setText(userPassword);
C_remember.setChecked(true);
}
} catch (Exception e) {
Log.e("error", "onCreate: error");
}
MyListener ML = new MyListener();
loginButton.setOnClickListener(ML);
}
在按键监听器中判断是否勾选,若勾选则记录数据到文件,否则清空
class MyListener implements View.OnClickListener {
@Override
public void onClick(View v) {
userName = E_userName.getText().toString();
userPassword = E_userPassword.getText().toString();
//按下按钮之后如果勾选记住,则写入到文件,否则清空
if (C_remember.isChecked()) {
MySharedPreference.saveUserInfo(MainActivity.this, "user", "remember", "yes");
MySharedPreference.saveUserInfo(MainActivity.this, "user", "userName", userName);
MySharedPreference.saveUserInfo(MainActivity.this, "user", "userPassword", userPassword);
} else {
MySharedPreference.saveUserInfo(MainActivity.this, "user", "remember", "no");
MySharedPreference.saveUserInfo(MainActivity.this, "user", "userName", "");
MySharedPreference.saveUserInfo(MainActivity.this, "user", "userPassword", "");
}
//服务器校验
//sendRequestsWithOkHttp();
}
}
4、校验