Android SharedPreference 保存用户数据

上一章节我们了解了 SharedPreference 的基本知识,本章节我们就往 SharedPreference 里写一些数据吧

这个范例模拟登录时记住用户名,先填入信息,然后关闭应用,下次打开的时候就会自动读取上一次登录时的用户名


  1. 创建一个 空的 Android 项目 cn.twle.android.SharedSave

  2. 修改 activity_main.xml 创建一个表单

    <?xml version="1.0" encoding="utf-8" ?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">
    
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="请输入用户名" />
    
        <EditText
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:id="@+id/ms_username"
            android:hint="请输入用户名" />
    
        <Button
            android:id="@+id/btn_login"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="登录" />
    
    </LinearLayout>
    
  3. MainActivity.java 同一目录下创建一个 SharedPreference 帮助类 SharedHelper.java

    package cn.twle.android.sharedsave;
    
    import android.content.Context;
    import android.content.SharedPreferences;
    
    import java.util.HashMap;
    import java.util.Map;
    
    public class SharedHelper {
    
        private Context mContext;
    
        public SharedHelper() {
        }
    
        public SharedHelper(Context mContext) {
            this.mContext = mContext;
        }
    
        //定义一个保存数据的方法
        public void save(String key, String value) {
            SharedPreferences sp = mContext.getSharedPreferences("ms_sp", Context.MODE_PRIVATE);
            SharedPreferences.Editor editor = sp.edit();
            editor.putString(key,value);
            editor.commit();
        }
    
        //定义一个读取 SP 文件的方法
        public String read(String key ) {
            Map<String, String> data = new HashMap<String, String>();
            SharedPreferences sp = mContext.getSharedPreferences("ms_sp", Context.MODE_PRIVATE);
            return sp.getString(key,"");
        }
    }
    
  4. 修改 MainActivity.java 完成逻辑部分

    package cn.twle.android.sharedsave;
    
    import android.content.Context;
    import android.os.Bundle;
    import android.support.v7.app.AppCompatActivity;
    import android.view.View;
    import android.widget.Button;
    import android.widget.TextView;
    import android.widget.Toast;
    
    public class MainActivity extends AppCompatActivity {
    
        private Context mContext;
        private SharedHelper sh;
    
        private TextView ms_username;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
            mContext = getApplicationContext();
            sh = new SharedHelper(mContext);
    
            Button btn_sign = (Button) findViewById(R.id.btn_login);
    
            ms_username = findViewById(R.id.ms_username);
    
            btn_sign.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    String username = ms_username.getText().toString();
    
                    sh.save("username",username);
    
                    Toast.makeText(MainActivity.this, "信息已写入 SharedPreference 中", Toast.LENGTH_SHORT).show();
                }
            });
        }
    
        @Override
        protected void onStart() {
            super.onStart();
            String username = sh.read("username").toString();
    
            ms_username.setText(username);
        }
    }
    

查看 SharedPreference 保存的信息

首先运行上面的范例,然后我们来看一下 Android 是怎么保存 SharedPreference

  1. 打开 Android Studio 中的 Device File Explorer (一般在编辑器的右下角)

  2. 依次展开 data/data/<报名> 可以看到 shared_prefs 目录,这个目录就是用来保存当前 APP 所有的 SharedPreference

  3. 双击打开 ms_sp ,就能看到我们刚刚保存的用户名 imyufei

Android 基础教程

关于   |   FAQ   |   我们的愿景   |   广告投放   |  博客

  简单教程,简单编程 - IT 入门首选站

Copyright © 2013-2022 简单教程 twle.cn All Rights Reserved.