SharePreferences

一、什么是SharePreferences

      1、当程序中有少量的数据保存,而且这些数据的格式简单:都是一些字符串、标量类型的值等。比如应用程序的各种配置信息,应用程序的使用次数。这个时候就可以用SharePreferences对象保存,SharePreferences的数据总保存在/data/data//shared_prefs目录下,SharePreferences数据总是以XML格式保存。
        2、SharePreferences数据文件是一个跟元素为,每一个子元素是一个key-value,value是字符串类型时,使用,如果是int就


二、如何使用

  ①通过Sharepreferences preferences = getSharedPreferences(String name,int mode);创建SharePreferences实例(name是文件名,mode是权限模式)
            ②获取编辑对象SharePreferences.Editor editor = preferences.edit();
            ③写入数据,editor.putString("time",sdf.format(new Date()));
                                  editor.putInt("random",12);
                                  editor.commit();
            ④读数据       String time =  preferences.getString("time",null);//防止文件不存在或属性不存在,也会返回默认值
                                  int random = presferences.getInt("random",0);//防止文件不存在或属性不存在,也会返回默认值
            ⑤删除            editor.remove("time");
                                   editor.remove("random");
                                   editor.commit();
            ⑥全部删除      editor.clear();
                                    editor.commit();

三、使用SharePreferences记住密码实例

package com.example.administrator.spdemo;

import android.content.SharedPreferences;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {

    private Button loginBtn;
    private EditText usernameEt;
    private EditText passwordEt;
    private CheckBox rememberPswCk;
    private CheckBox autoLoginCK;

    private int rememberFlag = 0;
    private String password;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);


        bindID();
        //从sp文件(mysp.xml)里取出"name"节点对应的值
        SharedPreferences sharedPreferences = getSharedPreferences("mysp.xml", 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) {

            rememberPswCk.setChecked(true);
            passwordEt.setText(password);

        }


        loginBtn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                String username = usernameEt.getText().toString();
                String password = passwordEt.getText().toString();

                //创建SharedPreferences对象
                SharedPreferences spf = getSharedPreferences("mysp.xml", MODE_PRIVATE);
                //创建Esitor对象,写入值
                SharedPreferences.Editor editor = spf.edit();
                editor.putString("name", username);


                if (rememberPswCk.isChecked()) {
                    rememberFlag = 1;
                    editor.putInt("remember_flag", rememberFlag);
                    editor.putString("password", password);
                } else {
                    rememberFlag = 0;
                    editor.putInt("remember_flag", rememberFlag);
                }
                //提交
                editor.commit();

                Toast.makeText(MainActivity.this, "登陆成功", Toast.LENGTH_SHORT).show();

            }
        });
    }

    private void bindID() {
        loginBtn = findViewById(R.id.login_btn);
        usernameEt = findViewById(R.id.username_et);
        passwordEt = findViewById(R.id.password_et);
        rememberPswCk = findViewById(R.id.remember_psw_ck);
        autoLoginCK = findViewById(R.id.remember_psw_ck);

    }
}


你可能感兴趣的:(SharePreferences)