編輯:關於Android編程
上節中我們是手動拼接xml文件,但是上節中那樣的做法會有一個問題,比如:
//插入消息的內容 sBuffer.append(); sBuffer.append(sms.getBody() +); sBuffer.append();
所以這節我們使用xml的序列化器來拼接短信內容。
下面的代碼是如何用xml序列化器拼接一個文件:
public class MainActivity extends Activity { Listlist; @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序列化器在內部已經自動處理了。
復制代碼 代碼如下:package com.leeass.generate;import java.io.File;import java.io.FileFi
學習目的:1、掌握在Android中如何建立EditText2、掌握EditText的常用屬性3、掌握EditText焦點的事件、按鍵的事件(監聽器)介紹:EditTex
當我們需要執行一些耗時操作,比如說發起一條網絡請求時,考慮到網速等其他原因,服務器未必會立刻響應我們的請求,如果不將這類操作放在子線程裡去運行,就會導致主線程被阻塞住,從
今天咱們看看android studio的jar打包,但是jar包裡面呢res文件是用不了的,那想用圖片文件怎麼辦呢,這裡可以把圖片文件放進assets文件裡面打進jar