SharedPreferences存储
它是采用键值对的方式来存储数据的。SharedPreferences文件是使用XML格式对数据进行管理的。
将数据存储到SharePreferences中
1.获取SharedPreferences对象
获取方式有3种
1)Context类中的getSharedPreferences()方法;
该方法接收两个参数
a.指定SharedPreferences文件的名称。默认该文件存放在/data/data//shared_prefs目录下。
b.文件的操作模式。目前只有MODE_PRIVATE模式可以选择。
2)Activity类中的getPreferences()方法:
该方法只接收一个参数,即文件的操作模式。因为使用这个方法会默认将当前活动的类名作为SharedPreferences的文件名。
3)PreferenceManager类中的getDefaultSharedPreferences()方法。
该方法只接收一个参数,即Context参数。使用这个方法会默认以该应用程序的包名作为前缀来命名SharedPreferences文件。
2.向SharedPreferences文件中存储数据,分3步实现
1)调用SharedPreferences对象的edit()方法来获取一个SharedPreferences.Editor对象。
2)向SharedPreferences.Editor对象中添加数据
3)调用apply()方法将数据提交
从SharedPreferences文件中读取数据
1.获取SharedPreferences对象
2.通过调用SharedPreferences对象的getInt()、getString()等方法来获取数据
实例:SharedPreferences读写数据
MainActivity.java
public class MainActivity extends AppCompatActivity {
private Button btnWriteToSh;
private Button btnReadFromSh;
private TextView tvShow;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btnWriteToSh = (Button)findViewById(R.id.btnWriteToSh);
btnReadFromSh = (Button)findViewById(R.id.btnReadFromSh);
tvShow = (TextView)findViewById(R.id.tvShow);
btnWriteToSh.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
SharedPreferences sh = getSharedPreferences("data", MODE_PRIVATE);
SharedPreferences.Editor editor = sh.edit();
editor.putString("name", "asi");
editor.putInt("age", 18);
editor.apply();
}
});
btnReadFromSh.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
SharedPreferences sh = getSharedPreferences("data", MODE_PRIVATE);
String name = sh.getString("name", "");
int age = sh.getInt("age", 0);
tvShow.setText("name is :" + name + " age is: " + age);
}
});
}
}