Android data is converted to Xml for the client and the client to use xml data.
(1) create an object class News
Public class News {private Integer id; private String title; private Integer timelength; public News (Integer id, String title, Integer timelength) {this. id = id; this. title = title; this. timelength = timelength;} // get, set Method}
(2) Implementation classes of interfaces created for interface programming:
Public interface VideoNewsService {/*** get the latest video information * @ return */public List
GetLastNews ();}
Interface implementation class, used to add some false data
Public class VideoNewsServiceBean implements VideoNewsService {public List
GetLastNews () {List
Newes = new ArrayList
(); Newes. add (new News (90, "Pleasant goat and Big Wolf", 78); newes. add (new News (10, "real-time helicopter rescue drills in the East China Sea", 28); newes. add (new News (56, "Cameroon VS Holland", 70); return newes ;}}
(3) return data to the big client through servlet
Public class ListServlet extends HttpServlet {private static final long serialVersionUID = 1L; private VideoNewsService service = new VideoNewsServiceBean (); protected void doGet (HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {doPost (request, response);} protected void doPost (HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {List
Videos = service. getLastNews (); request. setAttribute ("videos", videos); // redirects a jsp interface. When the client requests, the returned jsp page data request is sent. getRequestDispatcher ("/WEB-INF/page/videonews. jsp "). forward (request, response );}}
(4) generate the jsp page of the xml file (here the returned xml file is contentType = "text/xml ")
<%@ page language="java" contentType="text/xml; charset=UTF-8" pageEncoding="UTF-8"%><%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
${video.timelength}
(5) use xml files in the client
The same client also needs a News entity class, which is omitted here
Create a service class for parsing xml and returning xml file data
Public class VideoNewsService {/*** get the latest video information */public static List
GetLastNews () throws Exception {String path = "request servlet url"; URL url = new URL (path); HttpURLConnection conn = (HttpURLConnection) url. openConnection (); conn. setConnectTimeout (5000); conn. setRequestMethod ("GET"); if (conn. getResponseCode () = 200) {InputStream inStream = conn. getInputStream (); return parseXML (inStream);} return null;}/*** parse the xml data returned by the server
90
20
30
*/Private static List
ParseXML (InputStream inStream) throws Exception {List
Newses = new ArrayList
(); News news = null; XmlPullParser parser = Xml. newPullParser (); parser. setInput (inStream, "UTF-8"); int event = parser. getEventType (); // judge the event of the xml Parser while (event! = XmlPullParser. END_DOCUMENT) {switch (event) {case XmlPullParser. START_TAG: if ("news ". equals (parser. getName () {int id = new Integer (parser. getAttributeValue (0); news = new News (); news. setId (id);} else if ("title ". equals (parser. getName () {news. setTitle (parser. nextText ();} else if ("timelength ". equals (parser. getName () {news. setTimelength (new Integer (parser. nextText ();} break; case XmlPullParser. END_TAG: if ("news ". equals (parser. getName () {newses. add (news); news = null;} break;} event = parser. next () ;}return newses ;}}
(6) use it in the Mainactivity. java file (set a value for a listview)
Public class MainActivity extends Activity {@ Override public void onCreate (Bundle savedInstanceState) {super. onCreate (savedInstanceState); setContentView (R. layout. main); ListView listView = (ListView) this. findViewById (R. id. listView); try {List
Videos = VideoNewsService. getLastNews (); // you need to change it to your local Http Request Path List.
> Data = new ArrayList
> (); For (News news: videos) {HashMap
Item = new HashMap
(); Item. put ("id", news. getId (); item. put ("title", news. getTitle (); item. put ("timelength", getResources (). getString (R. string. timelength) + news. getTimelength () + getResources (). getString (R. string. min); data. add (item);} SimpleAdapter adapter = new SimpleAdapter (this, data, R. layout. item, new String [] {"title", "timelength"}, new int [] {R. id. title, R. id. timelength}); listView. setAdapter (adapter);} catch (Exception e) {e. printStackTrace ();}}}
This completes the operation