Android 移动应用开发:使用 SharedPreferences 保存和读取用户信息

发布于:2025-05-13 ⋅ 阅读:(10) ⋅ 点赞:(0)

目录

📁 文件结构

📄 1. MainActivity.java

🧾 2. activity_main.xml

▶️ 程序运行效果说明

✅ 总结


在 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>

▶️ 程序运行效果说明

  1. 打开应用后,会显示两个按钮:“保存”和“读取”。

  2. 点击“保存”按钮,会将如下数据存储到本地:

    • 姓名:小紫

    • 年龄:18

    • 性别:女(true 表示是女)

  3. 点击“读取”按钮,会弹出一个对话框和一条 Toast 消息,显示这些数据,例如:

姓名: 小紫
年龄: 18
性别为女: true

✅ 总结

通过本案例,你可以学会:

  • 如何使用 SharedPreferences 进行简单的数据存储和读取;

  • 如何设计基本的按钮点击事件;

  • 如何使用 AlertDialog 展示信息;

  • 简单的 XML 布局设计。

 


网站公告

今日签到

点亮在社区的每一天
去签到