Android中序列化
2012-04-12 16:19
197 查看
1.创建一个HolidayInfo.java的类
2.序列化并输出xml(对象的属性中有中文,序列化时出现空字符???)
3.执行结果
package wei.cao.test; public class HolidayInfo { public int ID; public String Title; public String Holidayer; public String HolidayType; public String Memo; public HolidayInfo(int id,String title,String holidayer,String holidayType,String memo) { this.ID=id; this.Title=title; this.Holidayer=holidayer; this.HolidayType=holidayType; this.Memo=memo; } }
2.序列化并输出xml(对象的属性中有中文,序列化时出现空字符???)
package wei.cao.test; import java.io.StringWriter; import java.util.ArrayList; import org.xmlpull.v1.XmlPullParserFactory; import org.xmlpull.v1.XmlSerializer; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.EditText; public class XmlSerializeActivity extends Activity { /** Called when the activity is first created. */ Button myButton; EditText result; ArrayList<HolidayInfo> holidays=new ArrayList<HolidayInfo>(); @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); myButton=(Button)this.findViewById(R.id.myButton); result=(EditText)this.findViewById(R.id.et_Result); holidays.add(new HolidayInfo(1,"aa","bb","1","Demo1")); holidays.add(new HolidayInfo(2,"aaaa","bbbb","2","Demo2")); holidays.add(new HolidayInfo(3,"aaaaaa","bbbbbb","3","Demo3")); myButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View arg0) { String str=SerializeToXml(holidays); result.setText(str); } private String SerializeToXml(ArrayList<HolidayInfo> holidays) { StringWriter stringWriter=new StringWriter(); try{ //获取XmlSerializer 对象 XmlPullParserFactory factory=XmlPullParserFactory.newInstance(); XmlSerializer xmlSerializer=factory.newSerializer(); //设置输出流对象 xmlSerializer.setOutput(stringWriter); /* * startDocument(String encoding, Boolean standalone)encoding代表编码方式 * standalone 用来表示该文件是否呼叫其它外部的文件。 * 若值是 ”yes” 表示没有呼叫外部规则文件,若值是 ”no” 则表示有呼叫外部规则文件。默认值是 “yes”。 */ xmlSerializer.startDocument("utf-8", true); for(HolidayInfo holiday:holidays){ /* *startTag (String namespace, String name)这里的namespace用于唯一标识xml标签 *XML 命名空间属性被放置于某个元素的开始标签之中,并使用以下的语法: xmlns:namespace-prefix="namespaceURI" 当一个命名空间被定义在某个元素的开始标签中时,所有带有相同前缀的子元素都会与同一个命名空间相关联。 注释:用于标示命名空间的地址不会被解析器用于查找信息。其惟一的作用是赋予命名空间一个惟一的名称。不过,很多公司常常会作为指针来使用命名空间指向某个实存的网页,这个网页包含着有关命名空间的信息。 */ xmlSerializer.startTag(null, "Holiday"); xmlSerializer.startTag(null, "ID"); xmlSerializer.text(holiday.ID+""); xmlSerializer.endTag(null, "ID"); xmlSerializer.startTag(null, "Title"); xmlSerializer.text(holiday.Title); xmlSerializer.endTag(null, "Title"); xmlSerializer.startTag(null, "Holidayer"); xmlSerializer.text(holiday.Holidayer); xmlSerializer.endTag(null, "Holidayer"); xmlSerializer.startTag(null, "HolidayType"); xmlSerializer.text(holiday.HolidayType); xmlSerializer.endTag(null, "HolidayType"); xmlSerializer.startTag(null, "Memo"); xmlSerializer.text(holiday.Memo); xmlSerializer.endTag(null, "Memo"); xmlSerializer.endTag(null, "Holiday"); } xmlSerializer.endDocument(); } catch(Exception e) { e.printStackTrace(); } return stringWriter.toString(); } }); } }
3.执行结果
相关文章推荐
- android drawable序列化
- Android中数据序列化之Serializable与Parcelable
- Android中使用PULL方式解析XML和XmlSerializer进行序列化
- Android序列化Serializable和Parcelable的理解和区别
- Android实现Parcelable对象序列化的实例
- Android复习练习七(Android中Xml序列化及Pull解析)
- Android 序列化 Parcelable VS Serializable
- Android进程通信之一:两种序列化方式
- android数据序列化的实现
- Android 使用Parcelable序列化对象
- Android复杂数据模型序列化
- Android -- 创建XML文件对象及其序列化, pull解析XML文件
- Android中Serializable和Parcelable序列化对象详解
- Android开发中两种序列化Serializable 和 Parcelable
- Android 序列化(Serializable)出现错误 java.lang.RuntimeException: Parcelable encountered IOException writing
- Android 7.0 BroadcastReceiver接收pendingIntent 传递过来序列化数据
- [Android] Parcelable接口实现序列化
- Android序列化Serializable和Parcelable区别
- Android 序列化 Parcelable接口用法
- Android - 序列化与反序列化