第五周安卓开发学习记录

写在前面

本周由于空闲时间较少,只学习了在安卓中持久化存储的两种方式:1.存储到内部存储中 2.存储到数据库(sqlite),其中第二种由于时间关系暂未学习,下周补上。关于外部存储的内容,考虑到现在的手机大多不带SD卡了,就没有在学习了。

存储到内部存储中

顾名思义,类比到windows中就是存储到硬盘内的文件上,即存到手机内部存储的某个文件中,具体的操作也类似于java中的文件存储方式,如下代码块:

    private void saveUserInfo(String accountText, String passwordText) {
        Log.e(TAG,"保存用户信息");
        //怎么获取到保存文件的路径
        //输出结果:/data/user/0/com.androidlearing.qqlogindemo/files
        //即存到这个位置
        //用于自己的保存文件,可以用代码删除,也可以用模拟器中的设置删除
        File filesDir = this.getFilesDir();
        Log.d(TAG,filesDir.toString());
        //获取到缓存文件存储的路径
        //用于保存缓存文件,当存储空间不足时会进行清理
        //缓存文件位置:/data/user/0/com.androidlearing.qqlogindemo/cache
        File cacheDir = this.getCacheDir();
        Log.d(TAG,cacheDir.toString());
        File saveFile = new File(filesDir,"info.txt");
        if (!saveFile.exists()) {
            try {
                saveFile.createNewFile();
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
        try {
            FileOutputStream fos = new FileOutputStream(saveFile);
            //以特定的形式来存储
            //我们的账号***我们的密码
            fos.write((accountText+"***"+passwordText).getBytes());
            fos.close();
            Toast.makeText(this,"数据保存成功",Toast.LENGTH_SHORT).show();
        } catch (Exception e) {
            e.printStackTrace();
        }

    }

可以看到操作基本和pc中操作文件是一样的,这里也就不再细说了。

存储配置文件

这里简单学习了一个简单的东西:SharedPreferences的使用,不多说,直接上代码:

    mSetting_info = this.getSharedPreferences("setting_info", MODE_PRIVATE);
   @Override
    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
        //我们在这里需要对数据进行保存
        Log.d(TAG,"current state = "+isChecked);
        SharedPreferences.Editor edit = mSetting_info.edit();
        edit.putBoolean("state",isChecked);
        edit.commit();

    }

总结

本周学习了很少的内容,大部分时间都在睡觉。自己的生物钟有点调整不来了。这几天会迅速改好。

原文地址:https://www.cnblogs.com/wushenjiang/p/12541706.html