数据存储
分类:sharedPreferences存储,File存储,数据库存储
sharedPreferences存储
定义:存储一下轻量级数据,一个轻量级的存储类,一般用作记住用户名密码
如何使用:存储在/data文件夹下
- 获得使用sharedPreferences对象
- 获得Edtior对象
- 通过Editor对象的putXXX对象,设置写入数据
- 通过Editor对象的commit提交写入
sharedPreferences参数:
- name:要保存的文件名
- mode:私有文件
SharedPreferences实例
步骤:
- 创建视图,绑定id,登录按钮设置监听
- 在监听范围内,创建sharedPreferences对象,创建Edtior对象,写入值,创建一个标志位,判断是否记住密码,提交显示
- 从sp文件里取出刚刚命名的结点对应的值
- 读取刚刚定义的用户名和密码,赋值给用户名输入框,达到记住用户名的效果
- 读取刚刚标志位记录的东西判断是否已记住密码,当标志位=1时,为记住密码状态,读取密码,密码输入框显示密码
视图文件代码展示:
<EditText
android:id="@+id/zhanghao_et"
android:layout_width="match_parent"
android:layout_height="50dp"
android:hint="输入账号"/>
<EditText
android:id="@+id/mima_et"
android:layout_width="match_parent"
android:layout_height="50dp"
android:hint="输入密码"
android:inputType="textPassword"/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="50dp"
android:orientation="horizontal">
<CheckBox
android:id="@+id/fuxuan_cb"
android:layout_gravity="center"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"/>
<TextView
android:id="@+id/jizhu_tv"
android:layout_gravity="center_vertical"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="记住密码"
android:layout_marginLeft="10dp"/>
<Button
android:id="@+id/denglu_btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="登录"
android:layout_marginLeft="10dp"/>
</LinearLayout>
sharedPreferencesSave代码展示:
public class sharedpreferencesSave extends AppCompatActivity {
private EditText usernameEt;
private EditText passwordEt;
private CheckBox rememberCB;
private Button button;
private int rememberFlag=0;
private String password="";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_sharedpreferences_save);
bindID();
//从sp文件UserInfo里取出"name"结点对应的值
SharedPreferences sharedPreferences=getSharedPreferences("UserInfo",MODE_PRIVATE);
if(sharedPreferences!=null){
String name=sharedPreferences.getString("name","");
password=sharedPreferences.getString("password","");
//读取刚刚标志的东西
rememberFlag=sharedPreferences.getInt("remember_flag",0);
//赋值给usernameet
usernameEt.setText(name);
}
if(rememberFlag==1){
rememberCB.setChecked(true);
passwordEt.setText(password);
}
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String username = usernameEt.getText().toString();
String password = passwordEt.getText().toString();
//1、创建sharedPreferences对象
SharedPreferences spf = getSharedPreferences("UserInfo", MODE_PRIVATE);
//2、创建Editor对象,写入值
SharedPreferences.Editor editor = spf.edit();
editor.putString("name", username);
//判断是否记住密码,标志位记住
if (rememberCB.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(sharedpreferencesSave.this, "登录成功", Toast.LENGTH_SHORT).show();
}
});
}
private void bindID() {
usernameEt=findViewById(R.id.zhanghao_et);
passwordEt=findViewById(R.id.mima_et);
rememberCB=findViewById(R.id.fuxuan_cb);
button=findViewById(R.id.denglu_btn);
}
}