//checksms returning list sms
private ArrayList<Sms> checkSms() {
Uri uriSMSURI = Uri.parse("content://sms/inbox");
Cursor cur = getActivity().getContentResolver().query(uriSMSURI, null, null, null, null);
while (cur.moveToNext())
{
newSms.setsender(cur.getString(cur.getColumnIndex("address")));
myList.add(newSms);
}
createXml();
return (myList);
}
//这里是createXml methode
private void createXml() {
File newxmlfile = new File(Environment.getExternalStorageDirectory()+ "/SmsFile.xml");
try
{Log.v(BackupFragment.this.getClass().getName(), "create file:" + newxmlfile.createNewFile());}
catch (IOException e)
{Log.e("IOException", "exception in createNewFile() method");}
FileOutputStream fileos = null;
try
{fileos = new FileOutputStream(newxmlfile);}
catch (FileNotFoundException e)
{Log.e("FileNotFoundException", "can't create FileOutputStream");}
XmlSerializer serializer = Xml.newSerializer();
try {
serializer.setOutput(fileos, "UTF-8");
serializer.startDocument(null, Boolean.valueOf(true));
serializer.setFeature("http://xmlpull.org/v1/doc/features.html#indent-output",true);
serializer.startTag("", "Document");
for(int i = 0 ; i < myList.size(); i++) {
serializer.startTag("", "sms");
serializer.startTag(null, "sender");
serializer.text(newSms.getsender());
serializer.endTag(null, "sender");
serializer.endTag("", "sms");
}
serializer.endTag("", "Document");
serializer.endDocument();
serializer.flush();
fileos.close();
} catch (Exception e) {
Log.e("Exception", "error occurred while creating xml file");
}
}
结果错了
它没有返回我想要的正确结果 它只是重复相同的错误号码“44225627565” 而且我不知道te问题在哪里
答案 0 :(得分:0)
你想要迭代myList
,你在这里做什么:
for(int i = 0 ; i < myList.size(); i++) {
serializer.startTag("", "sms");
serializer.startTag(null, "sender");
serializer.text(newSms.getsender()); <----
serializer.endTag(null, "sender");
serializer.endTag("", "sms");
}
但您使用newSms.getsender()
来接收号码。
谁负责获得总是相同的数字。
相反,您应该使用:myList.get(i).getsender()
或myList包含的任何内容
的修改
您还可以在列表中插入相同的对象:
newSms.setsender(cur.getString(cur.getColumnIndex("address")));
myList.add(newSms);
您应始终创建一个新对象以插入:
Sms tmp = new Sms();
tmp.setsender(cur.getString(cur.getColumnIndex("address")));
myList.add(tmp);