目录
在 Android 开发中,我们经常会遇到这样的需求:保存用户的一些简单信息,如姓名、性别、年龄等,以便下次打开应用时还能读取。
这时,SharedPreferences
是非常常用的一种轻量级数据存储方式。
下面,我们通过一个简单的例子来学习它的使用方式。
📁 文件结构
本示例主要包含两个文件:
MainActivity.java
(Java 逻辑代码)activity_main.xml
(布局文件)
📄 1. MainActivity.java
📌语言:Java
📌文件路径:app/src/main/java/com/example/sharedpreferences/MainActivity.java
package com.example.sharedpreferences;
import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.app.AppCompatActivity;
import android.annotation.SuppressLint;
import android.content.DialogInterface;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
private Button btn_save, btn_read;
@SuppressLint("MissingInflatedId")
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn_save = findViewById(R.id.btn_save);
btn_read = findViewById(R.id.btn_read);
btn_save.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
SharedPreferences sharedPreferences = getSharedPreferences("INFO", MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putString("NAME", "小紫");
editor.putBoolean("ISGIRL", true);
editor.putInt("AGE", 18);
editor.commit();
Toast.makeText(MainActivity.this, "保存成功!", Toast.LENGTH_SHORT).show();
}
});
btn_read.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
SharedPreferences sp = getSharedPreferences("INFO", MODE_PRIVATE);
String name = sp.getString("NAME", "无");
boolean isgirl = sp.getBoolean("ISGIRL", true);
int age = sp.getInt("AGE", 0);
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
builder.setIcon(R.drawable.ic_launcher_background);
builder.setTitle("个人信息");
builder.setMessage("姓名: " + name + "\n年龄: " + age + "\n性别为女: " + isgirl);
builder.setPositiveButton("确定", null);
builder.setNegativeButton("取消", null);
builder.setNeutralButton("再想想", null);
builder.create().show();
Toast.makeText(MainActivity.this,
"姓名: " + name + "\n年龄: " + age + "\n性别为女: " + isgirl,
Toast.LENGTH_SHORT).show();
}
});
}
}
🧾 2. activity_main.xml
📌语言:XML(用于界面布局)
📌文件路径:app/src/main/res/layout/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"
tools:context=".MainActivity"
android:orientation="vertical"
android:padding="16dp">
<Button
android:id="@+id/btn_save"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="保存" />
<Button
android:id="@+id/btn_read"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="读取" />
</LinearLayout>
▶️ 程序运行效果说明
打开应用后,会显示两个按钮:“保存”和“读取”。
点击“保存”按钮,会将如下数据存储到本地:
姓名:小紫
年龄:18
性别:女(true 表示是女)
点击“读取”按钮,会弹出一个对话框和一条 Toast 消息,显示这些数据,例如:
姓名: 小紫
年龄: 18
性别为女: true
✅ 总结
通过本案例,你可以学会:
如何使用
SharedPreferences
进行简单的数据存储和读取;如何设计基本的按钮点击事件;
如何使用
AlertDialog
展示信息;简单的 XML 布局设计。