androidxml写入文件
❶ android 如何利用java代码 在一个xml布局中插入另一个xml布局
Android在xml文件中可使用include包含其他定义好的布局, 可以将多处用到的布局单独出来,然后用include包含进来,这种包含方法相当于把原来布局的一部分代码独立出来,供大家共同使用,也就相当于面向对向中的类的概念差不多。下面我们逐步讲解include的作用。
先看下我们要实现的整体界面:
一、未使用Include时
通常情况下,我们直接就能写出布局代码,下面是所使用的XML代码:
[html]view plain
<?xmlversion="1.0"encoding="utf-8"?>
<LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical">
<!--第一部分-->
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="#ff0000"
android:text="第一个BTN"/>
<Button
android:id="@+id/mybutton"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="OneButton"/>
<!--第二部分-->
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="#00ff00"
android:text="第二个BTN"/>
<Button
android:id="@+id/mybutton"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="SecondButton"/>
<!--最后的按钮-->
<Button
android:id="@+id/another"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="AnotherButton"/>
</LinearLayout>
这段代码理解起来一点难度没有,就是几个TextView和几个Button,下面我们用include把这段代码给分割成几个文件,并完成相同的效果;
二、使用Include时
1、先将上面代码标记有“第一部分”的,代码段分离成一个文件(sublayout1.xml);
[html]view plain
<?xmlversion="1.0"encoding="utf-8"?>
<LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="#505050"
android:orientation="vertical">
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="#ff0000"
android:text="第一个BTN"/>
<Button
android:id="@+id/mybutton"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="OneButton"/>
</LinearLayout>
2、再将标记有“第二部分”的代码段,分离成第二个文件(sublayout2.xml):
[html]view plain
<?xmlversion="1.0"encoding="utf-8"?>
<LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="#00ff00"
android:text="第二个BTN"/>
<Button
android:id="@+id/mybutton"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="SecondButton"/>
</LinearLayout>
3、主文件中使用include,将上面两个文件包含进去(activity_main.xml);
[html]view plain
<?xmlversion="1.0"encoding="utf-8"?>
<LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical">
<include
android:id="@+id/main1"
layout="@layout/sublayout1"/>
<include
android:id="@+id/main2"
layout="@layout/sublayout2"/>
<Button
android:id="@+id/another"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="AnotherButton"/>
</LinearLayout>
这样就实现了相同的效果,这里可以看到,include并没有其它的功能,只是把一个XML布局引入进来当做自己的布局,跟直接把引用的这段代码写在include处的效果是一样的。
❷ android 创建一个XML文件,如何在读这个XML文件时,得到读取的时间
回答:格式自定,按照程序编写,回即得读取时间。
方法步骤:如下
一、布局界面
二、写一个xml文件
[java] view plain
三、写一个和xml相对应的bean
[java] view plain
<span style="color:#000000;">[java] view plainprint?
package com.example.lession04_pull.domain;
四、写一个Pul的服务类
[java] view plain
<span style="color:#000000;">[java] view plainprint?
package com.example.lession04_pull.service;
// 解析文件
xmlPullParser.setInput(is, "UTF-8");
//获取解析的事件类型
int eventType=xmlPullParser.getEventType();
//判断文件解析的是否完毕
while(eventType!=XmlPullParser.END_DOCUMENT){
switch (eventType) {
case XmlPullParser.START_DOCUMENT:
persons=new ArrayList<Person>();
break;
//创建person对象
currentPerson=new Person();
currentPerson.setId(Integer.parseInt(xmlPullParser
.getAttributeValue(null, "id")));
}else if("name".equals(tagName)){
currentPerson.setName(xmlPullParser.nextText());
//把person对象放到集合中去
persons.add(currentPerson);
currentPerson=null;
// 写入
public boolean write(List<Person> persons) {
// 采用pull解析进行实现
if (Environment.getExternalStorageState().equals(
Environment.MEDIA_MOUNTED)) {
// 获取sdcard目录 文件对象
File sdCardDir = Environment.getExternalStorageDirectory();
// 创建文件
File file = new File(sdCardDir, "mycsdn.xml");
XmlSerializer serializer = Xml.newSerializer();
FileOutputStream fos = null;
try {
// 根据文件对象创建一个文件的输出流对象
fos = new FileOutputStream(file);
// 设置输出的流及编码
serializer.setOutput(fos, "UTF-8");
// 设置文件的开始
serializer.startDocument("UTF-8", true);
// persons标签开始
serializer.startTag(null, "persons");
for (Person person : persons) {
// person标签的开始
serializer.startTag(null, "person");
// 设置person标签的属性
serializer.attribute("null", "id", person.getId() + "");
// 设置person标签的子标签 name
serializer.startTag(null, "name");
serializer.text(person.getName());
serializer.endTag(null, "name");
// 设置person标签的子标签的age
serializer.startTag(null, "age");
serializer.text(person.getAge() + "");
serializer.endTag(null, "age");
// person标签的结束
serializer.endTag(null, "person");
}
// persons标签的结束
serializer.endTag(null, "persons");
补充说明:
有些时候,我们需要生成一个XML文件,生成XML文件的方法有很多,如:可以只使用一个StringBuilder组拼XML内容,然后把内容写入到文件中;或者使用DOM API生成XML文件,或者也可以使用pull解析器生成XML文件,这里推荐使用Pull解析器。
❸ android读写xml文件,能读不能写入
我汗,LZ,你只是把数据适配到了serializer里面,最后你要写进outputstream里面才行啊,flush的意思是将缓存写进硬盘里,但是你的缓存根本就是空的,你要调用outputstream.write将serializer的东西写进去才行。
❹ android:如何将字符串写入xml文件中
res values 下边 有个String.xml 参照系统自动生成的写。。调用 layout 的xml文件中 @string/... activity中 this.getString(R.string.....) 到安卓巴士网站查看回答详情>>
❺ Android-Android怎么向已有的xml文件添加数据
可以这么做:
在上传之前,所有的数据可以用你熟悉的格式存储即可,主要方便自己后面读取,像纯文本,jason 都可以
当数据到达你设定的上限,需要发送的时候,此时把数据读出来用xml编码,android本身就支持,XmlSerializer 用的多些。
❻ android 在activity里用java代码写Xml布局文件
你是想在activity的代码里写linearlayout么?
1、你可以在代码里面创建一个LinearLayout (比如 lineLayout1 ),然后针对这个变量进行设置
2、然后你需要通过findViewById()的方法,去查找xml定义好的那个ScrollView,把他放入一个变量中,如view1,当然前提是你要再xml里面给这个ScrollView起一个名字
3、调用view1.add(lineLayout1)方法把lineLayout1加进去
当然这是一个大方向,具体的代码细节你要再研究一下
❼ 新手,android下怎么全是xml文件,java代码应该写在什么地方
对于Android来说xml一般是布局文件,或者是配置文件,java代码一般是src文件夹下的。
如图
src就是你编写java代码的地方
layout就是xml布局文件
values也是xml文件,但是他是string等变量文件
❽ 如何利用Android XmlSerializer生成XML文件
用到的主要是XmlSerializer,利用它来写xml文件。
private static void XmlFileCreator(List<JokeBean> data){
File newxmlfile = new File(Environment.getExternalStorageDirectory()+"/new.xml");
try{
if(!newxmlfile.exists())
newxmlfile.createNewFile();
}catch(IOException e){
Log.e("IOException", "exception in createNewFile() method");
}
//we have to bind the new file with a FileOutputStream
FileOutputStream fileos = null;
try{
fileos = new FileOutputStream(newxmlfile);
}catch(FileNotFoundException e){
Log.e("FileNotFoundException", "can't create FileOutputStream");
}
//we create a XmlSerializer in order to write xml data
XmlSerializer serializer = Xml.newSerializer();
try {
//we set the FileOutputStream as output for the serializer, using UTF-8 encoding
serializer.setOutput(fileos, "UTF-8");
//Write <?xml declaration with encoding (if encoding not null) and standalone flag (if standalone not null)
serializer.startDocument(null, Boolean.valueOf(true));
//set indentation option
serializer.setFeature("http://xmlpull.org/v1/doc/features.html#indent-output", true);
//start a tag called "root"
serializer.startTag(null, "jokes");
for(JokeBean joke:data){
serializer.startTag(null, "joke");
//i indent code just to have a view similar to xml-tree
serializer.startTag(null, "id");
serializer.text(joke.getId());
serializer.endTag(null, "id");
serializer.startTag(null, "title");
serializer.text(joke.getTitle());
//set an attribute called "attribute" with a "value" for <child2>
//serializer.attribute(null, "attribute", "value");
serializer.endTag(null, "title");
serializer.startTag(null, "text");
//write some text inside <text>
serializer.text(joke.getText());
serializer.endTag(null, "text");
serializer.endTag(null, "joke");
}
serializer.endTag(null, "jokes");
serializer.endDocument();
//write xml data into the FileOutputStream
serializer.flush();
//finally we close the file stream
fileos.close();
} catch (Exception e) {
Log.e("Exception","error occurred while creating xml file");
}
}