編輯:關於Android編程
上節中我們是手動拼接xml文件,但是上節中那樣的做法會有一個問題,比如:
//插入消息的內容 sBuffer.append(); sBuffer.append(sms.getBody() +); sBuffer.append();

所以這節我們使用xml的序列化器來拼接短信內容。
下面的代碼是如何用xml序列化器拼接一個文件:
public class MainActivity extends Activity {
List list;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
list = new ArrayList();
}
public void storageMessage(View v)
{
//得到ContentResolver
ContentResolver cr = getContentResolver();
//查詢系統的短信,只需要查詢我們關心的字段
Cursor cursor = cr.query(Uri.parse(content://sms), new String[]{address, date, type, body},
null, null, null);
//取出查詢到的信息
while(cursor.moveToNext())
{
String address = cursor.getString(cursor.getColumnIndex(address));
String date = cursor.getString(cursor.getColumnIndex(date));
String type = cursor.getString(cursor.getColumnIndex(type));
String body = cursor.getString(cursor.getColumnIndex(body));
//將每條短信放入List集合中
Message msg = new Message(address, date, type, body);
list.add(msg);
}
//先拿到xml序列化對象
XmlSerializer xs = Xml.newSerializer();
File file = new File(sdcard/sms2.xml);
try {
FileOutputStream fos = new FileOutputStream(file);
//utf-8用於指定用什麼編碼生成xml文件
xs.setOutput(fos, utf-8);
//utf-8指定頭結點中enconding的屬性的值
xs.startDocument(utf-8, true);
xs.startTag(null, message);
for (Message sms : list) {
xs.startTag(null, sms);
xs.startTag(null, address);
xs.text(sms.getAddress());
xs.endTag(null, address);
xs.startTag(null, type);
xs.text(sms.getType());
xs.endTag(null, type);
xs.startTag(null, date);
xs.text(sms.getDate());
xs.endTag(null, date);
xs.startTag(null, body);
xs.text(sms.getBody() +);
xs.endTag(null, body);
xs.endTag(null, sms);
}
xs.endTag(null, message);
//告訴序列化器,文件生成完畢
xs.endDocument();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}

導出來查詢備份的文件信息:

可以看到xml序列化器在內部已經自動處理了。
用於cocos2d-x引擎(ndk)中為android項目生成編譯文件列表
復制代碼 代碼如下:package com.leeass.generate;import java.io.File;import java.io.FileFi
Android控件系列之EditText使用方法
學習目的:1、掌握在Android中如何建立EditText2、掌握EditText的常用屬性3、掌握EditText焦點的事件、按鍵的事件(監聽器)介紹:EditTex
Android多線程及Handler使用
當我們需要執行一些耗時操作,比如說發起一條網絡請求時,考慮到網速等其他原因,服務器未必會立刻響應我們的請求,如果不將這類操作放在子線程裡去運行,就會導致主線程被阻塞住,從
android 使用gradle導出jar包,並包含assets資源文件夾
今天咱們看看android studio的jar打包,但是jar包裡面呢res文件是用不了的,那想用圖片文件怎麼辦呢,這裡可以把圖片文件放進assets文件裡面打進jar