存储数据
SharedPreferences sp = getSharedPreferences("sp_demo", Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sp.edit();
editor.putString("name", "小张");
editor.putInt("age", 11);
editor.commit();
取数据
SharedPreferences sp = getSharedPreferences("sp_demo", Context.MODE_PRIVATE);
String name = sp.getString("name", null);
int age = sp.getInt("age", 0);
在上面这种情况,数据存储在意sq_demo命名的xml文件种,可以存储的数据类型:
场景描述:当用户登录了一款程序,退出后再次登录,需要重新输入密码
解决方案:当登陆成功后,将数据使用SharedPreferences api进行存储,代码如下:
public class LoginActivity extends AppCompatActivity {
private EditText etUserName;
private EditText etPassWord;
private Button btnLogin;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
//判断是否已登陆
SharedPreferences sharedPreferences = getSharedPreferences("userInfo",MODE_PRIVATE);
if(!sharedPreferences.getString("uname","").equals("")){
Toast.makeText(LoginActivity.this,"已经登录成功,无需再次登录",Toast.LENGTH_SHORT).show();
}
etUserName = findViewById(R.id.etUserName);
etPassWord = findViewById(R.id.etPassWord);
btnLogin = findViewById(R.id.btnLogin);
btnLogin.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String userName = etUserName.getText().toString();
String passWord = etPassWord.getText().toString();
if(userName.equals("abc") && passWord.equals("123456")){
SharedPreferences preferences = getSharedPreferences("userInfo",MODE_PRIVATE);
SharedPreferences.Editor editor = preferences.edit();
editor.putString("uname",userName);
editor.putInt("msg",60);
editor.commit();
Toast.makeText(LoginActivity.this,"登陆成功,并保存登录信息",Toast.LENGTH_SHORT).show();
}else{
Toast.makeText(LoginActivity.this,"对不起,登录失败!",Toast.LENGTH_SHORT).show();
}
}
});
}
}