对昨天的补充
保存内容到应用文件夹,也可以用File file = new file(this.getFileDir(),XXX.txt);
保存到应用程序文件夹的名为file的子文件夹里。
File file = new file(this.getCacheDir(),XXX.txt);
保存到应用程序文件夹的名为Cache的子文件夹里。
将数据保存到公共的cd卡
sd卡路径:/mnt/sdcard
File file = new file(Environment.getExternalStorageDirectory(),"XXX.txt")
需要申请权限android.premission.WRITE_EXTERNAL_STORAGE
最好在存数据之前,判断sdcard状态。Environment.getExternalStorageState()
(返回String类型)
String status = Environment.getgetExternalStorageState()
if(!Environment.Media_MOUNTED.equals(status)){
//XXXXX
}
else{
//XXXX
}
//返回可用空间大小
long freeSpace = Environment.getExternalStorageDirectory().getFreeSpace();
String avaliableSize = Formatter.formatFileSize(this,freeSpace);
文件的访问权限
- 私有文件
只有应用自己能访问,其他应用不能访问 - 只读文件
其他应用可以读。不可以写
FileOutputStream out = openFileOutput("readonly.txt",Context.MODE_WORLD_READABLE);
out.write("readonly".getBytes());
out.close();
- 只写文件
MODE_WORLD_WRITEABLE - 公共文件
MODE_WORLD_READABLE+MODE_WORLD_WRITEABLE
Linux下的文件权限
android文件夹权限源于Linux
permission一共10位 “----------”
第一位d----directory,表示文件夹
第二位到第四位,表示当前的应用具有的权限
第五位到第七位,表示当前应用所在组的权限
第八位到第十位,表示当前应用所在组之外的部分的权限
r表示read,读取权限,对应数值4
w表示write,写入权限,对应数值2
x表示executable,执行权限,对应数值1
比如-rw-rw--w-
drwxrwx--x
使用sharedPreference保存数据
//数据保存在config文件里,xml格式的。0表示权限是private
SharedPreferences sp = getSharedPreferences("config",0);
Editor editor = sp.edit();
//传入键值对
editor.putStringx("numbexxxr",number);
//提交修改
editor.commit();
要取得config.xml里的值,可以用sp.getString("number","")
(第一个参数是键,第二个参数是默认值)
checkbox的状态
checkbox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
//第一个参数是checkbox本身,第二个参数是checkbox是否被勾选的实时状态
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
}
});
checkboxObject.setChecked(boolean值)
设置checkbox的默认状态
RadioGroup
RadioGroup是一个单选框,从按钮中选择一个
如何获取选择的是哪一个?
//得到所选按钮的id
int id = radiogroupObject.getCheckedRadioButtonId();
switch(id){
case xxxx1:
//执行逻辑
break;
case xxx2:
break;
}
Google推荐的生成xml的api
//专门生成xml的序列化器
XmlSerializer serializer = Xml.newSerializer();
//需要传入一个outputstream对象
serializer.setOutput(OutputstreamObject,"UTF-8");
//xml头
serializer.startDoucument("UTF-8",Boolean值);
//标签头和尾,其中的null位置表示类似activity——main.xml 里"android:"的东西,设为null表示没有
serializer.startTag(null,"XXX");
//设置文本信息
serializer.text(string值);
serializer.endTag(null,"XXX");
serializer.endDocument();
解析xml
pull parser,基于事件驱动