Android SharedPreference 保存用户数据
上一章节我们了解了 SharedPreference
的基本知识,本章节我们就往 SharedPreference
里写一些数据吧
这个范例模拟登录时记住用户名,先填入信息,然后关闭应用,下次打开的时候就会自动读取上一次登录时的用户名
-
创建一个 空的 Android 项目
cn.twle.android.SharedSave
-
修改
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>
-
在
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,""); } }
-
修改
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
的
-
打开
Android Studio
中的Device File Explorer
(一般在编辑器的右下角) -
依次展开
data/data/<报名>
可以看到shared_prefs
目录,这个目录就是用来保存当前 APP 所有的SharedPreference
-
双击打开
ms_sp
,就能看到我们刚刚保存的用户名imyufei