Android-pull解析xml
来源:互联网 发布:算法导论 原书第3版 编辑:程序博客网 时间:2024/05/20 07:32
效果图:
//XML pull提供了开始元素和结束元素。当某个元素开始时,可以调用parser.nextText从XML文档中提取所有字符数据package com.example.android29_sensor;import android.app.ProgressDialog;import android.os.AsyncTask;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.util.Log;import android.util.Xml;import android.view.View;import android.view.ViewGroup;import android.widget.BaseAdapter;import android.widget.LinearLayout;import android.widget.ListView;import android.widget.TextView;import org.xmlpull.v1.XmlPullParser;import org.xmlpull.v1.XmlPullParserException;import java.io.IOException;import java.io.InputStream;import java.net.HttpURLConnection;import java.net.MalformedURLException;import java.net.URL;import java.util.ArrayList;import java.util.List;/** * XMLPullParser * 网络拿XML数据解析 * 使用HttpURLConnection获取连接对象 * 在清单文件添加网络权限 * <uses-permission android:name="android.permission.INTERNET"></uses-permission> */public class MainActivity extends AppCompatActivity { private ListView lv_main; private List<Person> persons=new ArrayList<>(); private Person person; private MyAdpter myAdpter; private ProgressDialog progressDialog; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); lv_main = (ListView) findViewById(R.id.lv_main); //实例化进度条 progressDialog = new ProgressDialog(this); progressDialog.setMessage("正在加载中....."); //实例化适配器 myAdpter = new MyAdpter(); lv_main.setAdapter(myAdpter); }class MyAdpter extends BaseAdapter{ @Override public int getCount() { return persons.size(); } @Override public Object getItem(int i) { return persons.get(i); } @Override public long getItemId(int i) { return i; } @Override public View getView(int i, View view, ViewGroup viewGroup) { LinearLayout linearLayout=new LinearLayout(MainActivity.this); linearLayout.setOrientation(LinearLayout.HORIZONTAL); TextView textView=new TextView(MainActivity.this); textView.setText(persons.get(i).getPage()+""); linearLayout.addView(textView); return linearLayout; }} public void parsexml(View view){ new MyTask().execute(); } class MyTask extends AsyncTask{ @Override protected void onPreExecute() { super.onPreExecute(); progressDialog.show(); } @Override protected Object doInBackground(Object[] objects) { //获取网络数据xml //确定网络入径 String path="http://193.168.1.66:8080/Maven_SSM/getData.action"; try { //实例化URL URL url=new URL(path); //获取连接对象 HttpURLConnection httpurlconnection= (HttpURLConnection) url.openConnection(); //设置请求方式 httpurlconnection.setRequestMethod("GET"); //设置请求连接超时的时间优化 httpurlconnection.setConnectTimeout(5000); //获取结果码 int code=httpurlconnection.getResponseCode(); if(code==200){ //获取服务器返回的数据 InputStream inputStream=httpurlconnection.getInputStream(); //解析pull XmlPullParser xmlPullParser= Xml.newPullParser(); try { xmlPullParser.setInput(inputStream,"UTF-8"); int type=xmlPullParser.getEventType(); while(type!=XmlPullParser.END_DOCUMENT){ switch(type){ case XmlPullParser.START_TAG: //获取开始标签的名字 String stagname=xmlPullParser.getName(); Log.i("test","数据1:"+stagname); if("page".equals(stagname)){ String page=xmlPullParser.nextText(); Log.i("test","数据2:"+page); person = new Person(); person.setPage(Integer.parseInt(page)); } break; case XmlPullParser.END_TAG: //获取结束标签的名字 String endname=xmlPullParser.getName(); Log.i("test","数据5: "+endname); if("persons".equals(endname)){ persons.add(person); Log.i("test",""+person.getPage()); } break; } type=xmlPullParser.next(); } } catch (XmlPullParserException e) { e.printStackTrace(); } } } catch (MalformedURLException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return null; } @Override protected void onPostExecute(Object o) { super.onPostExecute(o); //通知适配器发生改变 myAdpter.notifyDataSetChanged(); progressDialog.cancel(); } }}
0 0
- Android Pull解析xml
- android pull 解析xml
- android PULL 解析XML
- Android Pull解析xml
- Android Pull 解析 XML
- Android Pull 解析 XML
- Android Pull解析xml
- Android PULL解析XML
- Android Pull解析xml
- Android PULL解析XML
- android xml-----Pull解析
- android pull解析xml
- Android Pull 解析 Xml
- Android Pull解析xml
- Android PULL解析XML
- Android XML Pull解析
- android,pull解析xml
- android PULL解析XML
- Git客户端安装图文详解如何安装配置GitHub操作流程攻略
- leetcode--485. Max Consecutive Ones
- 打素数表
- 飞花的线代
- Node.js 笔记五:nodemap-spider
- Android-pull解析xml
- 494. Target Sum
- [ make ] Makefile: 多个all目标的处理 和 变量目标的处理
- 用代码来画画 —— Ray-Marching(光线步进) 多个立体图形的绘制【GLSL】
- 【Web前端】CSS编码规范
- C++遍历2叉数
- cocos Creator js 三合一跑胡子房卡棋牌源码- 跑胡子房卡完整源码下载
- struts2和springmvc的区别
- 电子商务系统的设计与实现(十一):数据库设计