package com.example.test1;
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
import java.util.ArrayList;
import java.util.List;
import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserException;
import org.xmlpull.v1.XmlPullParserFactory;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.ListView;
public class MainActivity extends ActionBarActivity {
String path = "http://www.sciencenet.cn/xml/iphoneInterface.aspx?type=news&nums=20&pass=";
private String name;
Handler handler = new Handler() {
public void handleMessage(android.os.Message msg) {
List<Data> list = (List<Data>) msg.obj;
lv.setAdapter(new MyAdapter(MainActivity.this,list));
};
};
private ListView lv;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
lv = (ListView) findViewById(R.id.lv);
new Thread() {
public void run() {
getData();
};
}.start();
}
private void getData() {
try {
URL url = new URL(path);
HttpURLConnection openConnection = (HttpURLConnection) url
.openConnection();
openConnection.setRequestMethod("GET");
openConnection.connect();
int responseCode = openConnection.getResponseCode();
if (responseCode == 200) {
InputStream inputStream = openConnection.getInputStream();
pullParseXml(inputStream);
}
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
private void pullParseXml(InputStream inputStream) {
List<Data> list = new ArrayList<Data>();
Data data = null;
// 解析全部的xml
// boolean isParse = true;
try {
// 创建一个xmlPullParser的工厂
XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
// 获取一个解析实例
XmlPullParser parse = factory.newPullParser();
// 设置输入流的编码格式
parse.setInput(inputStream, "UTF-8");
// 当前事件的类型
int eventType = parse.getEventType();
while (eventType != XmlPullParser.END_DOCUMENT) {
switch (eventType) {
case XmlPullParser.START_DOCUMENT:
break;
case XmlPullParser.START_TAG:
name = parse.getName();
if ("item".equals(name)) {
data = new Data();
}
break;
case XmlPullParser.TEXT:
if ("title".equals(name)) {
data.setTitle(parse.getText());
} else if ("link".equals(name)) {
data.setLink(parse.getText());
} else if ("imgs".equals(name)) {
data.setImgs(parse.getText());
} else if ("description".equals(name)) {
data.setDescription(parse.getText());
} else if ("copyright".equals(name)) {
data.setCopyright(parse.getText());
} else if ("pubDate".equals(name)) {
data.setPubDate(parse.getText());
} else if ("comments".equals(name)) {
data.setComments(parse.getText());
}
break;
case XmlPullParser.END_TAG:
name = parse.getName();
if ("item".equals(name)) {
list.add(data);
data = null;
}
name="";
break;
}
eventType = parse.next();
}
Message msg = Message.obtain();
msg.obj = list;
handler.sendMessage(msg);
} catch (XmlPullParserException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
import java.util.ArrayList;
import java.util.List;
import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserException;
import org.xmlpull.v1.XmlPullParserFactory;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.ListView;
public class MainActivity extends ActionBarActivity {
String path = "http://www.sciencenet.cn/xml/iphoneInterface.aspx?type=news&nums=20&pass=";
private String name;
Handler handler = new Handler() {
public void handleMessage(android.os.Message msg) {
List<Data> list = (List<Data>) msg.obj;
lv.setAdapter(new MyAdapter(MainActivity.this,list));
};
};
private ListView lv;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
lv = (ListView) findViewById(R.id.lv);
new Thread() {
public void run() {
getData();
};
}.start();
}
private void getData() {
try {
URL url = new URL(path);
HttpURLConnection openConnection = (HttpURLConnection) url
.openConnection();
openConnection.setRequestMethod("GET");
openConnection.connect();
int responseCode = openConnection.getResponseCode();
if (responseCode == 200) {
InputStream inputStream = openConnection.getInputStream();
pullParseXml(inputStream);
}
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
private void pullParseXml(InputStream inputStream) {
List<Data> list = new ArrayList<Data>();
Data data = null;
// 解析全部的xml
// boolean isParse = true;
try {
// 创建一个xmlPullParser的工厂
XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
// 获取一个解析实例
XmlPullParser parse = factory.newPullParser();
// 设置输入流的编码格式
parse.setInput(inputStream, "UTF-8");
// 当前事件的类型
int eventType = parse.getEventType();
while (eventType != XmlPullParser.END_DOCUMENT) {
switch (eventType) {
case XmlPullParser.START_DOCUMENT:
break;
case XmlPullParser.START_TAG:
name = parse.getName();
if ("item".equals(name)) {
data = new Data();
}
break;
case XmlPullParser.TEXT:
if ("title".equals(name)) {
data.setTitle(parse.getText());
} else if ("link".equals(name)) {
data.setLink(parse.getText());
} else if ("imgs".equals(name)) {
data.setImgs(parse.getText());
} else if ("description".equals(name)) {
data.setDescription(parse.getText());
} else if ("copyright".equals(name)) {
data.setCopyright(parse.getText());
} else if ("pubDate".equals(name)) {
data.setPubDate(parse.getText());
} else if ("comments".equals(name)) {
data.setComments(parse.getText());
}
break;
case XmlPullParser.END_TAG:
name = parse.getName();
if ("item".equals(name)) {
list.add(data);
data = null;
}
name="";
break;
}
eventType = parse.next();
}
Message msg = Message.obtain();
msg.obj = list;
handler.sendMessage(msg);
} catch (XmlPullParserException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}