用一个例子来教你SharedPreferences的用法

SharedPreferences 是 Android 中用于存储小量数据的一种机制,它提供了一种简单的 key-value 存储方式,适合用于存储轻量级的配置信息、用户偏好设置等。

例子:

关于界面我就直接写好了。如下图

要把文本四个1保存进xml里

1.首先 创建了一个名为 "config" 的 SharedPreferences 对象,并指定了访问模式为 Context.MODE_PRIVATE。这意味着只有创建该 SharedPreferences 对象的应用程序才能访问它,其他应用程序无法访问或修改其中的数据。

 SharedPreferences  preferences = getSharedPreferences("config", Context.MODE_PRIVATE);

 2.将用户在界面上输入的姓名、年龄、身高、体重以及是否已婚等信息保存到 SharedPreferences 中。

// 从 EditText 中获取用户输入的姓名
String name = et_name.getText().toString();

// 从 EditText 中获取用户输入的年龄
String age = et_age.getText().toString();

// 从 EditText 中获取用户输入的身高
String height = et_height.getText().toString();

// 从 EditText 中获取用户输入的体重
String weight = et_weight.getText().toString();

// 获取 SharedPreferences 对象的编辑器
SharedPreferences.Editor editor = preferences.edit();

// 将用户输入的姓名以字符串形式存储到 SharedPreferences 中
editor.putString("name", name);

// 将用户输入的年龄以整数形式存储到 SharedPreferences 中(需先将字符串转换为整数)
editor.putInt("age", Integer.parseInt(age));

// 将用户输入的身高以浮点数形式存储到 SharedPreferences 中(需先将字符串转换为浮点数)
editor.putFloat("height", Float.parseFloat(height));

// 将用户输入的体重以浮点数形式存储到 SharedPreferences 中(需先将字符串转换为浮点数)
editor.putFloat("weight", Float.parseFloat(weight));

// 将用户是否已婚的选择状态存储到 SharedPreferences 中(以布尔值形式存储)
editor.putBoolean("married", ck_married.isChecked());

// 提交编辑操作,使更改生效
editor.commit();

3.现在已经保存在本地里了

 这里和你的项目名一样

4.那么如何下次打开显示上一次保存的数据呢?

很简单,刚才我们已经把数据放进preferences 里面了,现在我们只需要根据键值来取出来,并在oncreate函数里面加载。那么下次打开项目就会自动显示了。

/**
 * 重新加载 SharedPreferences 中保存的用户信息到界面上
 */
private void reload() {
    // 从 SharedPreferences 中获取用户姓名,如果为null表示没有存储该信息
    String name = preferences.getString("name", null);
    if (name != null) {
        // 如果姓名不为null,则将其设置到姓名的 EditText 中显示
        et_name.setText(name);
    }

    // 从 SharedPreferences 中获取用户年龄,如果为0表示没有存储该信息
    int age = preferences.getInt("age", 0);
    if (age != 0) {
        // 如果年龄不为0,则将其设置到年龄的 EditText 中显示
        et_age.setText(String.valueOf(age));
    }

    // 从 SharedPreferences 中获取用户身高,如果为0表示没有存储该信息
    float height = preferences.getFloat("height", 0f);
    if (height != 0f) {
        // 如果身高不为0,则将其设置到身高的 EditText 中显示
        et_height.setText(String.valueOf(height));
    }

    // 从 SharedPreferences 中获取用户体重,如果为0表示没有存储该信息
    float weight = preferences.getFloat("weight", 0f);
    if (weight != 0f) {
        // 如果体重不为0,则将其设置到体重的 EditText 中显示
        et_weight.setText(String.valueOf(weight));
    }

    // 从 SharedPreferences 中获取用户是否已婚的信息,默认为false表示未存储该信息
    boolean married = preferences.getBoolean("married", false);
    // 将获取到的已婚状态设置到已婚的 CheckBox 中显示
    ck_married.setChecked(married);
}

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值