国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

Android解析XML(PULL)展示到ListView

2019-12-12 03:35:19
字體:
來源:轉載
供稿:網友

Android解析XML展示到ListView運行后的效果圖如下:

服務端的請求頁面

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Insert title here</title></head><body> <a href="studentActiongetXML.action" rel="external nofollow" >獲取XML數據</a><br/></body></html>

服務端返回結果的頁面

<?xml version="1.0" encoding="UTF-8" ?><%@ page language="java" contentType="text/xml; charset=UTF-8" pageEncoding="UTF-8"%><%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %><students><c:forEach items="${students}" var="s"> <student name="${s.name}">  <sex>${s.sex}</sex> </student> </c:forEach></students>

服務端的Java代碼

package com.zking.action;import java.util.ArrayList;import java.util.List;import org.apache.struts2.ServletActionContext;import com.opensymphony.xwork2.ActionSupport;import com.zking.entity.Student;public class StudentAction extends ActionSupport{public String getXML() throws Exception { //查詢數據庫,獲取數據 List<Student> students=new ArrayList<>(); for (int i = 1; i <=20; i++) {  Student student=new Student("小霜"+i, "女");  students.add(student); } //將對象集合保存到請求域中 ServletActionContext.getRequest().setAttribute("students", students); return "dataResult"; } } 

服務端的配置文件(struts.xml)

<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" "http://struts.apache.org/dtds/struts-2.3.dtd"> <struts> <package name="myPackage" extends="struts-default">  <action name="studentAction*" class="com.zking.action.StudentAction" method="{1}">   <result name="dataResult">/dataResult.jsp</result>  </action> </package> </struts>

服務端的運行結果

Android (布局文件 activity_main.xml)

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/activity_main" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" android:orientation="vertical" tools:context="com.example.g150825_android29_parsexml.MainActivity"> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="獲取XML" android:onClick="getXML" /> <ListView android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/lv_main_list" ></ListView></LinearLayout>

Android(Java代碼 MainActivity)

package com.example.g150825_android29_parsexml;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 java.io.BufferedReader;import java.io.InputStream;import java.io.InputStreamReader;import java.net.HttpURLConnection;import java.net.MalformedURLException;import java.net.URL;import java.util.ArrayList;import java.util.List;public class MainActivity extends AppCompatActivity { List<Student> studentList=new ArrayList<>(); private ListView lv_main_list; private MyAdater myAdater; private ProgressDialog progressDialog; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //實例化進度條對話框 progressDialog = new ProgressDialog(this); progressDialog.setMessage("正在拼命加載中....."); lv_main_list = (ListView) findViewById(R.id.lv_main_list); //實例化適配器 //設置適配器 myAdater = new MyAdater(); lv_main_list.setAdapter(myAdater); } class MyAdater extends BaseAdapter{ @Override public int getCount() {  return studentList.size(); } @Override public Object getItem(int i) {  return studentList.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 textViewName=new TextView(MainActivity.this);  textViewName.setText(studentList.get(i).getName());  TextView textViewSex=new TextView(MainActivity.this);  textViewSex.setText(studentList.get(i).getSex());  linearLayout.addView(textViewName);  linearLayout.addView(textViewSex);  return linearLayout; } } public void getXML(View view){ new MyTask().execute(); } class MyTask extends AsyncTask{ private Student student; @Override protected void onPreExecute() {  super.onPreExecute();  progressDialog.show(); } @Override protected Object doInBackground(Object[] objects) {  //01.確定網絡數據  String path="http://192.168.43.152:8080/G150825_S2SH/studentActiongetXML.action";  try {  //02.實例化URL  URL url=new URL(path);  //03.獲取連接對象  HttpURLConnection httpURLConnection= (HttpURLConnection) url.openConnection();  //04.設置請求方式  httpURLConnection.setRequestMethod("GET");  //05.設置請求連接超時的時間(優化)  httpURLConnection.setConnectTimeout(5000);  //06.獲取響應碼(結果碼)  int code=httpURLConnection.getResponseCode();  if (code==200){   //07.獲取服務器返回過來的數據   InputStream is=httpURLConnection.getInputStream();   //測試(打?。?  //緩沖字符流//   BufferedReader br=new BufferedReader(new InputStreamReader(is));//   String str=null;//   while ((str=br.readLine())!=null){//   Log.i("test",str);//   }   //解析XML(PULL)   XmlPullParser xmlPullParser=Xml.newPullParser();   xmlPullParser.setInput(is,"UTF-8");   int type=xmlPullParser.getEventType();   while (type!=XmlPullParser.END_DOCUMENT){   switch (type){    case XmlPullParser.START_TAG:    //獲取開始標簽    String startTagName=xmlPullParser.getName();    if ("student".equals(startTagName)){     student = new Student();     //獲取name屬性值     String name=xmlPullParser.getAttributeValue(0);     student.setName(name);    }else if("sex".equals(startTagName)){     //獲取sex的文本值     String sex=xmlPullParser.nextText();     student.setSex(sex);    }    break;    case XmlPullParser.END_TAG:    //獲取到結束標簽的名字    String endTagName=xmlPullParser.getName();    if("student".equals(endTagName)){     studentList.add(student);    }    break;   }   type=xmlPullParser.next();   }  }  } catch (Exception e) {  e.printStackTrace();  }  return null; } @Override protected void onPostExecute(Object o) {  super.onPostExecute(o);  //通知適配器發生改變  myAdater.notifyDataSetChanged();  progressDialog.cancel(); } }}

Android (實體類 Student)

package com.example.g150825_android29_parsexml;public class Student { private String name; private String sex; public Student() { super(); // TODO Auto-generated constructor stub } public Student(String name, String sex) { super(); this.name = name; this.sex = sex; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; }}

在清單文件中添加權限即可(AndroidManifest.xml)

 <!--添加網絡權限--> <uses-permission android:name="android.permission.INTERNET"></uses-permission>

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 东海县| 什邡市| 凌源市| 永寿县| 阿拉善右旗| 昌宁县| 昂仁县| 通许县| 濮阳市| 信宜市| 平阴县| 苍山县| 清新县| 潮州市| 分宜县| 彰武县| 汤阴县| 东丽区| 海晏县| 元谋县| 长岛县| 吉木萨尔县| 慈利县| 瑞安市| 肃宁县| 高陵县| 高平市| 武鸣县| 天柱县| 甘孜| 阿尔山市| 谷城县| 江安县| 习水县| 龙川县| 虹口区| 巫山县| 中宁县| 阳曲县| 广丰县| 西峡县|