SharedPreferences是什么
SharedPreferences是Android平台上一个轻量级的存储类,以Key-value(键值对)的形式存储数据,可以存储的数据类型为:String,float,int,long,boolean,存储位置在/date/date/<包名>/shared_prsfs目录下以XML形式存储,当用户卸载此应用程序时,数据会一并清除;
如何存储数据
SharedPreferences sharedPreferences=getSharedPreferences("sp",MODE_PRIVATE);
SharedPreferences.Editor editor=sharedPreferences.edit();
editor.putString("name","张三");
editor.commit();
如何读取数据
String name=sharedPreferences.getString("name","");
记住密码案例
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
private CheckBox checkBox;
private EditText ed1, ed2;
private Button btn, btn2;
private SharedPreferences pref;
private SharedPreferences.Editor editor;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
bindID();
SharedPreferences sharedPreferences = getSharedPreferences("user", MODE_PRIVATE);
int checked = sharedPreferences.getInt("checked", 0);
if (checked == 1) {
String name = sharedPreferences.getString("username", "");
String psw = sharedPreferences.getString("psw", "");
ed1.setText(name);
ed2.setText(psw);
checkBox.setChecked(true);
} else {
checkBox.setChecked(false);
}
}
private void bindID() {
ed1 = (EditText) findViewById(R.id.ed1_main);
ed2 = (EditText) findViewById(R.id.ed2_main);
btn = (Button) findViewById(R.id.btn_main);
btn2 = (Button) findViewById(R.id.register_main);
checkBox = (CheckBox) findViewById(R.id.cBoX1);
btn.setOnClickListener(this);
btn2.setOnClickListener(this);
checkBox.setOnClickListener(this);
}
@Override
public void onClick(View v) {
SharedPreferences sharedPreferences = getSharedPreferences("user", MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPreferences.edit();
switch (v.getId()) {
case R.id.btn_main:
if (checkBox.isChecked()) {
String account = ed1.getText().toString();
String password = ed2.getText().toString();
editor.putString("username", account);
editor.putString("psw", password);
editor.putInt("checked", 1);
editor.commit();
Intent intent = new Intent(MainActivity.this, MenuActivity.class);
startActivity(intent);
} else {
editor.putString("username", "");
editor.putString("psw", "");
editor.putInt("checked", 0);
//Toast.makeText(MainActivity.this, "本账户不对", Toast.LENGTH_SHORT).show();
}
break;
case R.id.register_main:
Intent intent = new Intent(MainActivity.this, RegisterActivity.class);
startActivity(intent);
break;
default:
break;
}
}
}