SharedPreferences(儲存資料讀取資料)的簡單使用
阿新 • • 發佈:2018-11-19
本篇博文用一個登入的小案例來進行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到我們需要的資料就行了。