我想在xml文件中保存mylist(包含Sms)
private String checkSms() {
Uri uriSMSURI = Uri.parse("content://sms/inbox");
ArrayList<Sms> myList = new ArrayList<Sms>();
Cursor cur = getActivity().getContentResolver().query(uriSMSURI, null, null,null, null);
while (cur.moveToNext())
{
newSms.setsender(cur.getString(2));
for(int i = 0 ; i < myList.size(); i++){
mylist.add(newSms;)}
}
System.out.println(sms);
return (myList);
}
最佳答案 这样的东西会创建一个新的XML文件,其列表以XML格式保存:
XmlSerializer serializer = Xml.newSerializer();
StringWriter writer = new StringWriter();
try {
serializer.setOutput(writer);
serializer.startDocument("UTF-8", true);
serializer.startTag("", "messages");
serializer.attribute("", "number", String.valueOf(messages.size()));
for(String text : myList) {
serializer.startTag("", "sms");
serializer.text(text);
serializer.endTag("", "sms");
}
serializer.endTag("", "messages");
serializer.endDocument();
String xml = writer.toString();
} catch (Exception e) {
throw new RuntimeException(e);
}
try {
File root = new File(Environment.getExternalStorageDirectory(), "List");
if(!root.exists()) root.mkdirs();
File file = new File(root, name);
FileWriter writer = new FileWriter(file);
writer.append(xml);
writer.flush();
writer.close();
Toast.makeText(this, "Saved list", Toast.LENGTH_SHORT).show();
} catch(IOException e) {
e.printStackTrace();
}
您还需要写入权限,因此将其添加到清单文件中:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />