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();
}
}