如何以编程方式从XML文件中发送Android手机中的数据

时间:2014-07-16 06:09:58

标签: java android xml

我有一个代码来获取收件箱并在ListAdapter中显示,现在我想将收件箱数据保存到xml文件我希望与服务器通信,确切地将xml文件发送到服务器。怎么样?

这是我的代码:

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
        public void onClick(View arg0) {
            startActivity(new Intent(MainActivity.this, ListAdapter.class));
        }
    List<SMSData> smsList2 = new ArrayList<SMSData>();

    Uri outuri = Uri.parse("content://sms/sent");
    Cursor outc = getContentResolver()
            .query(outuri, null, null, null, null);
    startManagingCursor(outc);

    // Read the sms data and store it in the list
    if (outc.moveToFirst()) {
        for (int i = 0; i < outc.getCount(); i++) {
            SMSData sms = new SMSData();
            sms.setBody(outc.getString(outc.getColumnIndexOrThrow("body"))
                    .toString());
            sms.setNumber(outc.getString(
                    outc.getColumnIndexOrThrow("address")).toString());
            smsList2.add(sms);

            outc.moveToNext();
        }
    }
    outc.close();

    // Set smsList in the ListAdapter
    setListAdapter(new ListAdapter2(this, smsList2));

}

你能帮助我吗?

1 个答案:

答案 0 :(得分:0)

如果您的xml文件具有简单的内容,您可以像简单的文本文件一样编写它。这是代码草案

public void save() {
        String content = "<content>";
        for (SMS sms : smsList) {
            content += "<sms>";
            content += "<body>" + sms.getBody() + "</body>";
            content += "<number>" + sms.getNumber() + "</number>";
            content += "</sms>";
        }
        content += "</content>"

        // now we can send string to server or can save it
        FileWriter writer = new FileWriter(new File(%path_where_you_want_to_save%));
        writer.write(content);
        writer.close();
    }

如果您的xml将具有更复杂的结构,请尝试使用序列化库。像Simple一样。 关于简单的好教程你可以找到here

P.S。如果您可以更改服务器代码,我建议您使用JSON格式而不是XML。它更简单。要以JSON格式保存数据,您可以使用谷歌GSON库。