對昨天的補(bǔ)充
保存內(nèi)容到應(yīng)用文件夾,也可以用File file = new file(this.getFileDir(),XXX.txt);
保存到應(yīng)用程序文件夾的名為file的子文件夾里惶桐。
File file = new file(this.getCacheDir(),XXX.txt);
保存到應(yīng)用程序文件夾的名為Cache的子文件夾里钉鸯。
將數(shù)據(jù)保存到公共的cd卡
sd卡路徑:/mnt/sdcard
File file = new file(Environment.getExternalStorageDirectory(),"XXX.txt")
需要申請權(quán)限android.premission.WRITE_EXTERNAL_STORAGE
最好在存數(shù)據(jù)之前奠旺,判斷sdcard狀態(tài)。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);
文件的訪問權(quán)限
- 私有文件
只有應(yīng)用自己能訪問,其他應(yīng)用不能訪問 - 只讀文件
其他應(yīng)用可以讀唬党。不可以寫
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下的文件權(quán)限
android文件夾權(quán)限源于Linux
permission一共10位 “----------”
第一位d----directory撩银,表示文件夾
第二位到第四位给涕,表示當(dāng)前的應(yīng)用具有的權(quán)限
第五位到第七位,表示當(dāng)前應(yīng)用所在組的權(quán)限
第八位到第十位额获,表示當(dāng)前應(yīng)用所在組之外的部分的權(quán)限
r表示read够庙,讀取權(quán)限,對應(yīng)數(shù)值4
w表示write,寫入權(quán)限抄邀,對應(yīng)數(shù)值2
x表示executable,執(zhí)行權(quán)限耘眨,對應(yīng)數(shù)值1
比如-rw-rw--w-
drwxrwx--x
使用sharedPreference保存數(shù)據(jù)
//數(shù)據(jù)保存在config文件里,xml格式的撤摸。0表示權(quán)限是private
SharedPreferences sp = getSharedPreferences("config",0)毅桃;
Editor editor = sp.edit();
//傳入鍵值對
editor.putStringx("numbexxxr",number);
//提交修改
editor.commit();
要取得config.xml里的值褒纲,可以用sp.getString("number","")
(第一個參數(shù)是鍵,第二個參數(shù)是默認(rèn)值)
checkbox的狀態(tài)
checkbox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
//第一個參數(shù)是checkbox本身钥飞,第二個參數(shù)是checkbox是否被勾選的實時狀態(tài)
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
}
});
checkboxObject.setChecked(boolean值)
設(shè)置checkbox的默認(rèn)狀態(tài)
RadioGroup
RadioGroup是一個單選框莺掠,從按鈕中選擇一個
如何獲取選擇的是哪一個?
//得到所選按鈕的id
int id = radiogroupObject.getCheckedRadioButtonId();
switch(id){
case xxxx1:
//執(zhí)行邏輯
break;
case xxx2:
break;
}
Google推薦的生成xml的api
//專門生成xml的序列化器
XmlSerializer serializer = Xml.newSerializer();
//需要傳入一個outputstream對象
serializer.setOutput(OutputstreamObject,"UTF-8");
//xml頭
serializer.startDoucument("UTF-8",Boolean值)读宙;
//標(biāo)簽頭和尾彻秆,其中的null位置表示類似activity——main.xml 里"android:"的東西,設(shè)為null表示沒有
serializer.startTag(null,"XXX");
//設(shè)置文本信息
serializer.text(string值)结闸;
serializer.endTag(null,"XXX");
serializer.endDocument();
解析xml
pull parser,基于事件驅(qū)動