package com.bai.pull;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
import java.util.ArrayList;
import java.util.List;
import org.xmlpull.v1.XmlPullParser;
import android.app.Activity;
import android.os.Bundle;
import android.util.Xml;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
import android.os.Bundle;
import android.util.Xml;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
import com.bai.pull.bean.Book;
public class MainActivity extends Activity {
private TextView tv;
private Button bu;
private Button bu;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//查找控件
tv=(TextView)findViewById(R.id.textView1);
bu=(Button)findViewById(R.id.button1);
//监听按钮
bu.setOnClickListener(l);
}
OnClickListener l=new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
List<Book> list = pulljiexi();
tv.setText(list.toString());
}
};
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//查找控件
tv=(TextView)findViewById(R.id.textView1);
bu=(Button)findViewById(R.id.button1);
//监听按钮
bu.setOnClickListener(l);
}
OnClickListener l=new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
List<Book> list = pulljiexi();
tv.setText(list.toString());
}
};
//pull解析方法
public List<Book> pulljiexi(){
try {
//创建解析器
XmlPullParser parser=Xml.newPullParser();
InputStream inputStream=getAssets().open("Books.xml");
//设置使用什么编码把文件读取到内存
parser.setInput(inputStream, "utf-8");
//开始解析XML
int type=parser.getEventType();
//定义集合存储数据
List<Book> list = null;
Book book = null;
//判断读取行数没有走到末尾。
while(type!=XmlPullParser.END_DOCUMENT){
switch (type) {
//遇到开始标签
case XmlPullParser.START_TAG:
//判断是否读取到Books开始标签
if("Books".equals(parser.getName())){
//创建集合
list = new ArrayList<Book>();
}else if("Book".equals(parser.getName())){//判断是否读取到Book开始标签
//创建实体类对象
book = new Book();
}else if("name".equals(parser.getName())){
//获取parser内的name标签对应的值
String name=parser.nextText();
book.setName(name);
}else if("price".equals(parser.getName())){
//获取parser内的price标签对应的值
String price=parser.nextText();
book.setPrice(price);
}else if("author".equals(parser.getName())){
//获取parser内的author标签对应的值
String author=parser.nextText();
book.setAuthor(author);
}
break;
case XmlPullParser.END_TAG:
if("Book".equals(parser.getName())){
list.add(book);
}
break;
}
//读取下一个
type=parser.next();
}
return list;
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
if("Book".equals(parser.getName())){
list.add(book);
}
break;
}
//读取下一个
type=parser.next();
}
return list;
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
}