Android开发 SharedPreferences

1.SharedPreferences

SharedPreferences用于存储一些简单孤立的文本数据,可以持久化存储(不会随着APP的关闭而清除。

SharedPreferences保存在APP的私有目录下,其他APP不能访问。

 

 二、SharedPreferences 写入和读取

可以通过getSharedPreferences创建一个xml文件来存储数据

xml文件内容:

<?xml version='1.0' encoding='utf-8' standalone='yes' ?>
<map>
    <string name="name">alice</string>
    <int name="age" value="85" />
    <float name="salary" value="60000.0" />
    <boolean name="singer" value="true" />
</map>

 当下一次启动APP时,可以读取该xml文件的内容,在APP中显示上次运行的信息

package com.example.ch4;

import androidx.appcompat.app.AppCompatActivity;

import android.content.SharedPreferences;
import android.os.Bundle;
import android.view.View;
import android.widget.CheckBox;
import android.widget.EditText;

public class SharedPreActivity extends AppCompatActivity implements View.OnClickListener {

    private EditText et_name;
    private EditText et_age;
    private EditText et_salary;
    private CheckBox cb_singer;
    private SharedPreferences sharedPreferences;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_shared_pre);

        et_name = findViewById(R.id.et_name);
        et_age = findViewById(R.id.et_age);
        et_salary = findViewById(R.id.et_salary);
        cb_singer = findViewById(R.id.cb_singer);

        sharedPreferences = getSharedPreferences("table", MODE_PRIVATE);
        findViewById(R.id.bt).setOnClickListener(this);

        reload();

    }

    private void reload() {
        String name = sharedPreferences.getString("name", null);
        if(name!=null){
            et_name.setText(name);
        }
        String age = String.valueOf( sharedPreferences.getInt("age", 0) );
        if(age!="0"){
            et_age.setText(age);
        }
        float salary = sharedPreferences.getFloat("salary", 0f);
        if(salary!=0f){
            et_salary.setText(String.valueOf(salary));
        }
        boolean singer= sharedPreferences.getBoolean("singer", false);
        cb_singer.setChecked(singer);
    }

    @Override
    public void onClick(View view) {
        String name = et_name.getText().toString();
        int age = Integer.parseInt( et_age.getText().toString());
        float salary = Float.parseFloat(et_salary.getText().toString());


        SharedPreferences.Editor edit = sharedPreferences.edit();
        edit.putString("name", name);
        edit.putInt("age", age);
        edit.putFloat("salary", salary);
        edit.putBoolean("singer", cb_singer.isChecked());

        edit.commit();


    }
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值