第五周安卓开发学习记录
写在前面
本周由于空闲时间较少,只学习了在安卓中持久化存储的两种方式: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();
}
总结
本周学习了很少的内容,大部分时间都在睡觉。自己的生物钟有点调整不来了。这几天会迅速改好。