3.20

对昨天的补充

保存内容到应用文件夹,也可以用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,基于事件驱动

你可能感兴趣的:(3.20)