java xml 解析 listview_安卓笔记之解析XML文件并通过BaseAdapter显示至ListView

packagecom.example.day0328_xmlparse;importandroid.os.Bundle;importandroid.app.Activity;importandroid.widget.ListView;public class MainActivity extendsActivity {private String url = "http://10.16.154.26:8080/Web_Product/CityServlet?type=xml";privateListView listView;

@Overrideprotected voidonCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

listView=(ListView) findViewById(R.id.lv);

MyTask myTask= new MyTask(MainActivity.this,listView);

myTask.execute(url);

}

}packagecom.example.day0328_xmlparse;importjava.util.List;importandroid.content.Context;importandroid.os.AsyncTask;importandroid.util.Log;importandroid.view.LayoutInflater;importandroid.view.View;importandroid.view.ViewGroup;importandroid.widget.BaseAdapter;importandroid.widget.ListView;importandroid.widget.TextView;public class MyTask extends AsyncTask>{privateContext context;privateListView listView;publicMyTask(Context context,ListView listView){this.context =context;this.listView =listView;

}

@Overrideprotected voidonPreExecute() {//TODO Auto-generated method stub

super.onPreExecute();

}

@Overrideprotected ListdoInBackground(String... params) {//TODO Auto-generated method stub

String url =params[0];

String xmlStr=HttpUtils.httpXmlStr(url);

List citys =XmlUtils.parseXmlStr(xmlStr);for(String c: citys){

Log.i("aa", c+"");

}returncitys;

}

@Overrideprotected void onPostExecute(final Listresult) {//TODO Auto-generated method stub

listView.setAdapter(newBaseAdapter() {

@Overridepublic View getView(intposition, View convertView, ViewGroup parent) {//TODO Auto-generated method stub

View view=null;

ViewHolder holder;if(convertView==null){

view= LayoutInflater.from(context).inflate(android.R.layout.simple_list_item_1, null);

holder= newViewHolder();

holder.textView=(TextView) view.findViewById(android.R.id.text1);

view.setTag(holder);

}else{

view=convertView;

holder=(ViewHolder) view.getTag();

}

String text=result.get(position);

holder.textView.setText(text);returnview;

}

@Overridepublic long getItemId(intposition) {//TODO Auto-generated method stub

return 0;

}

@Overridepublic Object getItem(intposition) {//TODO Auto-generated method stub

return null;

}

@Overridepublic intgetCount() {//TODO Auto-generated method stub

returnresult.size();

}classViewHolder{publicTextView textView;

}

});super.onPostExecute(result);

}

}packagecom.example.day0328_xmlparse;importjava.io.ByteArrayOutputStream;importjava.io.InputStream;importorg.apache.http.HttpEntity;importorg.apache.http.HttpResponse;importorg.apache.http.client.HttpClient;importorg.apache.http.client.methods.HttpGet;importorg.apache.http.impl.client.DefaultHttpClient;public classHttpUtils {public staticString httpXmlStr(String url){//拿到客户端对象

HttpClient client = newDefaultHttpClient();//获取请求方式

HttpGet get = newHttpGet(url);try{

HttpResponse httpResponse=client.execute(get);if (httpResponse.getStatusLine().getStatusCode()==200) {

HttpEntity entity=httpResponse.getEntity();

InputStream is=entity.getContent();

ByteArrayOutputStream baos= newByteArrayOutputStream();byte[] bys = new byte[1024];int len = 0;while((len = is.read(bys))!=-1){

baos.write(bys,0, len);

}returnbaos.toString();

}

}catch(Exception e) {//TODO Auto-generated catch block

e.printStackTrace();

}return null;

}

}packagecom.example.day0328_xmlparse;importjava.io.Reader;importjava.io.StringReader;importjava.util.ArrayList;importjava.util.List;importorg.xmlpull.v1.XmlPullParser;importorg.xmlpull.v1.XmlPullParserFactory;public classXmlUtils {//解析XML字符串

public static ListparseXmlStr(String xmlStr){//XmlPullParser xp = Xml.newPullParser();

try{

List list = new ArrayList();

XmlPullParserFactory factory=XmlPullParserFactory.newInstance();

XmlPullParser xp=factory.newPullParser();//把字符串转换成字符输入流reader

Reader in = newStringReader(xmlStr);//告诉解析器对象Xml在哪,初始化

xp.setInput(in);//获取当前节点的时间类型

int type =xp.getEventType();//定义一个开关

boolean flag =false;while(true){if (type ==XmlPullParser.START_DOCUMENT) {

}else if(type==XmlPullParser.END_DOCUMENT){break;

}else if(type==XmlPullParser.START_TAG){if("name".equals(xp.getName())){

flag=true;

}

}else if(type ==XmlPullParser.END_TAG){

flag=false;

}else if(type ==XmlPullParser.TEXT){

String text=xp.getText();if(flag){

list.add(text);

}

}/*xp.next();

type = xp.getEventType();*/type=xp.next();

}returnlist;

}catch(Exception e) {

e.printStackTrace();

}return null;

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值