**Share Preferences存储**
一.什么是Share Preferences?
1.Sharedpreference是Android平台上一个轻量级的存储类,用来存储少量数据时简单、,便捷(如保存佳密码码状找态,设置开关状态等)。
2.以key-value(键值对)形式存储数据,可以存的数据类型为: String、 float、int、long. boolean。
3.存储位置在/data/data/<包名>/shared-prefs。
4保存的数据以XML形式存储。
二.使用sharedPreferences写入数据步骤
1.获得sharedPreferences对象。
2.获得Editor对象。
3.通过Editor对象的putXXX函数,设置写入数据。
4.通过Editor对象的commit提交写入。
三.使用Sharedpreference实例
1.布局文件:
<EditText
android:id="@+id/et1"
android:layout_width="match_parent"
android:layout_height="60dp" />
<EditText
android:id="@+id/et2"
android:layout_width="match_parent"
android:layout_height="60dp"
android:inputType="textPassword" />
<Button
android:id="@+id/bt1"
android:layout_width="match_parent"
android:layout_height="70dp"
android:text="登录" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="80dp"
android:orientation="horizontal">
<CheckBox
android:id="@+id/cb1"
android:layout_width="0dp"
android:layout_height="80dp"
android:layout_weight="1"
android:text="记住密码" />
<CheckBox
android:id="@+id/cb2"
android:layout_width="0dp"
android:layout_height="80dp"
android:layout_weight="1"
android:text="自动登录" />
2.java文件:
public class MainActivity extends AppCompatActivity {
private EditText usernameEt;
private EditText passwordEt;
private CheckBox rememberPswCk;
private CheckBox autoLoginCk;
private Button loginBtn;
private int rememberFlag = 0;
private String password = "";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
bindID();
//从Sp 文件里取出name节点对应的值
SharedPreferences sharedPreferences = getSharedPreferences("mysp.xml", MODE_PRIVATE);
if (sharedPreferences != null) {
String name = sharedPreferences.getString("name", "");
password = sharedPreferences.getString("password", "");
//赋值给usernameEt
usernameEt.setText(name);
rememberFlag = sharedPreferences.getInt("remember_flag", 0);
}
if (rememberFlag == 1) {
rememberPswCk.setChecked(true);
passwordEt.setText(password);
}
loginBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
String username = usernameEt.getText().toString();
String password = passwordEt.getText().toString();
//1.创建sharedpreferences对象
SharedPreferences spf = getSharedPreferences("mysp.xml", MODE_PRIVATE);
SharedPreferences.Editor editor = spf.edit();
//2.创建editor对象,写入值
editor.putString("user", username);
if (rememberPswCk.isChecked()) {
rememberFlag = 1;
editor.putInt("remember_flag", rememberFlag);
editor.putString("password", password);
} else {
rememberFlag = 0;
editor.putInt("remember_flag", rememberFlag);
}
//3.提交
editor.commit();
Toast.makeText(MainActivity.this, "登录成功", Toast.LENGTH_SHORT).show();
}
});
}
private void bindID() {//绑定ID
usernameEt = findViewById(R.id.et1);
passwordEt = findViewById(R.id.et2);
rememberPswCk = findViewById(R.id.cb1);
autoLoginCk = findViewById(R.id.cb2);
loginBtn = findViewById(R.id.bt1);
}
}
附上效果图: