25_Android_网络通信之资讯客户端(下)

接(上)的代码。Android客户端代码如下:

public class VideoActivity extends Activity {
	private Button btn_videonews;
	private ListView videoList;
	private List<News> newsList;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
	
		super.onCreate(savedInstanceState);
		setContentView(R.layout.videonews);
		btn_videonews = (Button) findViewById(R.id.Btn_down_news);
		videoList = (ListView) findViewById(R.id.Lv_videonews);
		
		  btn_videonews.setOnClickListener(new OnClickListener() {
		  
		 @Override public void onClick(View v) {
		
		try {
			URL url = new URL("http://111.114.116.114:8080/Test/ListServlet");
			HttpURLConnection httpURLConnection = (HttpURLConnection) url
					.openConnection();
			httpURLConnection.setReadTimeout(5000);
		
			httpURLConnection.setRequestMethod("GET");
			if (httpURLConnection.getResponseCode() == 200) {

				InputStream inputStream = httpURLConnection.getInputStream();
			newsList = parseXML(inputStream);
				List<HashMap<String, Object>> data = new ArrayList<HashMap<String, Object>>();
				for (News news : newsList) {
					HashMap<String, Object> item = new HashMap<String, Object>();
					item.put("id", news.getId());
					item.put("name", news.getName());
					item.put("timeLength", news.getTimeLength());
					data.add(item);
				}
				SimpleAdapter simpleAdapter = new SimpleAdapter(
						VideoActivity.this, data, R.layout.itme_news,

						new String[] { "name", "timeLength" }, new int[] {
								R.id.news_name, R.id.news_timeLength });
				videoList.setAdapter(simpleAdapter);

			}

		} catch (Exception e) {

			e.printStackTrace();
		}

	}

	 });

	 }

	private List<News> parseXML(InputStream inputStream) throws Exception {

		List<News> newsList = new ArrayList<News>();
		News news = null;
		XmlPullParser parser = Xml.newPullParser();
		parser.setInput(inputStream, "UTF-8");
		int event = parser.getEventType();
		while (event != XmlPullParser.END_DOCUMENT) {
			switch (event) {
			case XmlPullParser.START_TAG:
				if ("id".equals(parser.getName())) {
					news = new News();
					news.setId(new Integer(parser.nextText()));
				} else if ("name".equals(parser.getName())) {
					news.setName(parser.nextText());
				} else if ("timeLength".equals(parser.getName())) {
					news.setTimeLength(new Integer(parser.nextText()));
				}
				break;
			case XmlPullParser.END_TAG:// 每一个带斜杠的都是endtag
				if ("news".equals(parser.getName())) {
					newsList.add(news);
					news = null;

				}
				break;
			default:
				break;
			}
			event = parser.next();// 不要忘了这句哟~

		}
		Toast.makeText(this, "连接成功.200" + newsList.size(), 1000).show();
		return newsList;

	}
}



posted @ 2013-05-24 23:46  javawebsoa  Views(148)  Comments(0Edit  收藏  举报