1. 程式人生 > >SharedPreferences(儲存資料讀取資料)的簡單使用

SharedPreferences(儲存資料讀取資料)的簡單使用

本篇博文用一個登入的小案例來進行sp的使用練習。
登陸案例請訪問我的上一篇博文:https://blog.csdn.net/liyunfu233/article/details/84072958

程式碼如下:

package com.example.sp;

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

import java.util.Map;

public class MainActivity extends AppCompatActivity {
    EditText et_username;
    EditText et_userpassword;
    CheckBox cb_ischeck;
    SharedPreferences sp;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //[0]初始化sp的例項
        sp=getSharedPreferences("config",0);
        //[1]找到我們關心的控制元件
        et_username=findViewById(R.id.tv_username);
        et_userpassword=findViewById(R.id.tv_pwd);
        cb_ischeck=findViewById(R.id.cb_remember);
        //[2]在config.xml檔案中把我們關心的資料取出來然後顯示到edittext上
        String name=sp.getString("name","");
        String pwd=sp.getString("pwd","");

        //[3]把name和pwd設定到edittext上
        et_username.setText(name);
        et_userpassword.setText(pwd);

    }

    //[2]寫按鈕的點選事件
    public void login(View v){
        //[2.1]獲取使用者名稱和密碼
        String name=et_username.getText().toString().trim();
        String pwd=et_userpassword.getText().toString().trim();
        //[2.2]判斷name和pwd是否為空
        if (TextUtils.isEmpty(name)||TextUtils.isEmpty(pwd)){
            Toast.makeText(MainActivity.this,"使用者名稱或密碼不能為空",Toast.LENGTH_SHORT).show();

        }else {
            //[2.3]進行登入的邏輯
            System.out.println("連線伺服器進行登入 網路程式設計之後實現");

            if (cb_ischeck.isChecked()) {
                //[2.4]使用SharedPreferences去儲存資料 拿到sp的例項

                /**
                 * name 會幫助我們生成一個xml檔案
                 * mode 模式
                 *
                 */
                SharedPreferences sp = getSharedPreferences("config", 0);

                //[2.5]獲取sp的編輯器
                SharedPreferences.Editor edit = sp.edit();
                edit.putString("name", name);
                edit.putString("pwd", pwd);

                //[2.6]記得把edit進行提交
                edit.commit();
            }
        }
    }

}

本篇博文只在佈局檔案和mainactivity.xml進行了修改:
首先定義全域性變數sp,之後在login方法中初始化sp的例項,通過getSharedPreferences()方法例項化,第一個引數是幫助我們生成的xml檔名字,第二個引數是模式也就是下圖幾個MODE引數 。然後獲取sp的編輯器,並把資料進行提交。
在這裡插入圖片描述
在這裡插入圖片描述

下面是讀取檔案內容的方法:只需要例項化,並get到我們需要的資料就行了。
在這裡插入圖片描述