第一行代码 第六章 数据储存方案 - SharedPreferences存储

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);
            }
        });
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值