安卓中生成xml文件的方法

安卓中生成xml文件的方法

xml文件实际上就是map集合的键值对的展现形式,有他自己特有的格式

注:生成的xml文件的查看方式DDMSdatadata→包名→files→文件名

第一种:(StringBuffer

第一步:在xml布局中编辑

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

    xmlns:tools="http://schemas.android.com/tools"

    android:layout_width="match_parent"

    android:layout_height="match_parent"

    android:orientation="vertical"

    tools:context=".MainActivity" >

 

    <EditText

        android:id="@+id/et_name"

        android:layout_width="fill_parent"

        android:layout_height="wrap_content"

        android:hint="请输入学生的姓名" />

    

    <EditText

         android:id="@+id/et_age"

        android:inputType="number"

        android:layout_width="fill_parent"

        android:layout_height="wrap_content"

        android:hint="请输入学生的年龄" />

    

    <EditText

         android:id="@+id/et_id"

        android:inputType="number"

        android:layout_width="fill_parent"

        android:layout_height="wrap_content"

        android:hint="请输入学生的学号" />

 

    <Button

        android:onClick="save"

        android:layout_width="fill_parent"

        android:layout_height="wrap_content"

        android:text="保存" />

 

</LinearLayout>

第二步:在java中编辑逻辑

public class MainActivity extends Activity {

private EditText et_name;

private EditText et_age;

private EditText et_id;

 

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

et_name = (EditText) findViewById(R.id.et_name);

et_age = (EditText) findViewById(R.id.et_age);

et_id = (EditText) findViewById(R.id.et_id);

}

 

//<>

//<info>

//<student id='800001'>

//<name>张三</name>

//<age>18</age>

//</student>

//</info>

//保存学生的信息

public void save(View view){

String name = et_name.getText().toString().trim();

String age = et_age.getText().toString().trim();

String id = et_id.getText().toString().trim();

if(TextUtils.isEmpty(name)||TextUtils.isEmpty(age)||TextUtils.isEmpty(id)){

Toast.makeText(this, "信息不能为空", 0).show();

return;

}else{

//打算把数据存成xml文件.跨平台.

try {

StringBuffer sb = new StringBuffer();

sb.append("<?xml version='1.0' encoding='utf-8' standalone='yes' ?>");

sb.append("<info>");

sb.append("<student id='"+id+"'>");

sb.append("<name>"+name+"</name>");

sb.append("<age>"+age+"</age>");

sb.append("</student>");

sb.append("</info>");

File file = new File(Environment.getExternalStorageDirectory(),"qzs.xml");

FileOutputStream fos = new FileOutputStream(file);

fos.write(sb.toString().getBytes());

fos.close();

Toast.makeText(this, "保存学生信息成功", 0).show();

} catch (Exception e) {

e.printStackTrace();

Toast.makeText(this, "保存学生信息失败", 0).show();

}

}

}

}

第二种方法:(序列化器)

public class MainActivity extends Activity {

private EditText et_name;

private EditText et_age;

private EditText et_id;

 

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

et_name = (EditText) findViewById(R.id.et_name);

et_age = (EditText) findViewById(R.id.et_age);

et_id = (EditText) findViewById(R.id.et_id);

}

 

//<>

//<info>

//<student id='800001'>

//<name>张三</name>

//<age>18</age>

//</student>

//</info>

//保存学生的信息

public void save(View view){

String name = et_name.getText().toString().trim();

String age = et_age.getText().toString().trim();

String id = et_id.getText().toString().trim();

if(TextUtils.isEmpty(name)||TextUtils.isEmpty(age)||TextUtils.isEmpty(id)){

Toast.makeText(this, "信息不能为空", 0).show();

return;

}else{

//打算把数据存成xml文件.跨平台.

try {

//1.创建一个xml文件的序列化器

 XmlSerializer serializer = Xml.newSerializer();

 //2.设置文件的输出和编码方式

 FileOutputStream os = new FileOutputStream(new File(Environment.getExternalStorageDirectory(),"sem.xml"));

//对于目标文件的一个输出流

 serializer.setOutput(os, "utf-8");

 //3.xml文件的头

 serializer.startDocument("utf-8", true);

 //4.info开始节点

 serializer.startTag(null, "info");

 //5.student开始节点

 serializer.startTag(null, "student");

 //6.写属性

 serializer.attribute(null, "id", id);

 //7.name

 serializer.startTag(null, "name");

 serializer.text(name);

 serializer.endTag(null, "name");

 //8.age

 serializer.startTag(null, "age");

 serializer.text(age);

                  //两个节点中间的内容

 serializer.endTag(null, "age");

 

 serializer.endTag(null, "student");

 serializer.endTag(null, "info");

 serializer.endDocument();//写文件的末尾

 os.close();

Toast.makeText(this, "保存学生信息成功", 0).show();

} catch (Exception e) {

e.printStackTrace();

Toast.makeText(this, "保存学生信息失败", 0).show();

}

}

}

}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值