public class MainActivityextends Activity {
String path="http://www.sciencenet.cn/xml/iphoneInterface.aspx?type=news&nums=20&pass=";
private int eventType;
private ListView list_id;
Handler han=new Handler(){
public void handleMessage(android.os.Message msg) {
@SuppressWarnings("unchecked")
final List<Bean> lis = (List<Bean>)msg.obj;
list_id.setAdapter(new MyAdapter(MainActivity.this,lis));
list_id.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1,
int arg2, long arg3) {
Intent in=new Intent(MainActivity.this, MainActivity2.class);
String link = lis.get(arg2).getLink();
in.putExtra("link", link);
startActivity(in);
}
});
};
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
list_id = (ListView)findViewById(R.id.list_id);
new Thread(){
public void run() {
getData();
};
}.start();
}
private void getData() {
try {
//读取初始的URL转换成URL类对象
URL url =new URL(path);
//打开URL连接
HttpURLConnection conn = (HttpURLConnection)url.openConnection();
//设置连接
conn.setRequestMethod("GET");
//连接
conn.connect();
//读取字符串流
InputStream inStream = conn.getInputStream();
// BufferedReader but=new BufferedReader(new InputStreamReader(inStream,"utf-8"));
// StringBuffer str=new StringBuffer();
// while (true) {
// String readLine = but.readLine();
// if(readLine!=null){
// str.append(readLine);
// }else{
// break;
// }
// }
// Log.i("zzz", str.toString());
getPull(inStream);
// Message msg=Message.obtain();
// msg.obj=pull;
// han.sendMessage(msg);
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ProtocolException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
String name = null;
List<Bean> list = new ArrayList<Bean>();
Bean bean = null;
// 解析全部的xml
// boolean isParse = true;
try {
// 创建一个xmlPullParser的工厂
XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
// 获取一个解析实例
XmlPullParser parse = factory.newPullParser();
// 设置输入流的编码格式
parse.setInput(inStream, "UTF-8");
// 当前事件的类型
int eventType = parse.getEventType();
while (eventType != XmlPullParser.END_DOCUMENT) {
Log.i("zzz","name的值:"+name);
switch (eventType) {
case XmlPullParser.START_DOCUMENT:
Log.i("zzz","开始" );
break;
case XmlPullParser.START_TAG:
name = parse.getName();
if ("item".equals(name)) {
bean = new Bean();
}
break;
case XmlPullParser.TEXT:
if ("title".equals(name)) {
bean.setTitle(parse.getText());
} else if ("link".equals(name)) {
bean.setLink(parse.getText());
Log.i("zzz",parse.getText() );
} else if ("imgs".equals(name)) {
bean.setImgs(parse.getText());
} else if ("description".equals(name)) {
bean.setDescription(parse.getText());
} else if ("copyright".equals(name)) {
bean.setCopyright(parse.getText());
} else if ("pubDate".equals(name)) {
bean.setPubDate(parse.getText());
} else if ("comments".equals(name)) {
bean.setComments(parse.getText());
}
break;
case XmlPullParser.END_TAG:
name = parse.getName();
if ("item".equals(name)) {
list.add(bean);
bean = null;
}
name="";
break;
}
eventType = parse.next();
}
Message msg = Message.obtain();
msg.obj = list;
han.sendMessage(msg);
} catch (XmlPullParserException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
String path="http://www.sciencenet.cn/xml/iphoneInterface.aspx?type=news&nums=20&pass=";
private int eventType;
private ListView list_id;
Handler han=new Handler(){
public void handleMessage(android.os.Message msg) {
@SuppressWarnings("unchecked")
final List<Bean> lis = (List<Bean>)msg.obj;
list_id.setAdapter(new MyAdapter(MainActivity.this,lis));
list_id.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1,
int arg2, long arg3) {
Intent in=new Intent(MainActivity.this, MainActivity2.class);
String link = lis.get(arg2).getLink();
in.putExtra("link", link);
startActivity(in);
}
});
};
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
list_id = (ListView)findViewById(R.id.list_id);
new Thread(){
public void run() {
getData();
};
}.start();
}
private void getData() {
try {
//读取初始的URL转换成URL类对象
URL url =new URL(path);
//打开URL连接
HttpURLConnection conn = (HttpURLConnection)url.openConnection();
//设置连接
conn.setRequestMethod("GET");
//连接
conn.connect();
//读取字符串流
InputStream inStream = conn.getInputStream();
// BufferedReader but=new BufferedReader(new InputStreamReader(inStream,"utf-8"));
// StringBuffer str=new StringBuffer();
// while (true) {
// String readLine = but.readLine();
// if(readLine!=null){
// str.append(readLine);
// }else{
// break;
// }
// }
// Log.i("zzz", str.toString());
getPull(inStream);
// Message msg=Message.obtain();
// msg.obj=pull;
// han.sendMessage(msg);
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ProtocolException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
//pull解析
String name = null;
List<Bean> list = new ArrayList<Bean>();
Bean bean = null;
// 解析全部的xml
// boolean isParse = true;
try {
// 创建一个xmlPullParser的工厂
XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
// 获取一个解析实例
XmlPullParser parse = factory.newPullParser();
// 设置输入流的编码格式
parse.setInput(inStream, "UTF-8");
// 当前事件的类型
int eventType = parse.getEventType();
while (eventType != XmlPullParser.END_DOCUMENT) {
Log.i("zzz","name的值:"+name);
switch (eventType) {
case XmlPullParser.START_DOCUMENT:
Log.i("zzz","开始" );
break;
case XmlPullParser.START_TAG:
name = parse.getName();
if ("item".equals(name)) {
bean = new Bean();
}
break;
case XmlPullParser.TEXT:
if ("title".equals(name)) {
bean.setTitle(parse.getText());
} else if ("link".equals(name)) {
bean.setLink(parse.getText());
Log.i("zzz",parse.getText() );
} else if ("imgs".equals(name)) {
bean.setImgs(parse.getText());
} else if ("description".equals(name)) {
bean.setDescription(parse.getText());
} else if ("copyright".equals(name)) {
bean.setCopyright(parse.getText());
} else if ("pubDate".equals(name)) {
bean.setPubDate(parse.getText());
} else if ("comments".equals(name)) {
bean.setComments(parse.getText());
}
break;
case XmlPullParser.END_TAG:
name = parse.getName();
if ("item".equals(name)) {
list.add(bean);
bean = null;
}
name="";
break;
}
eventType = parse.next();
}
Message msg = Message.obtain();
msg.obj = list;
han.sendMessage(msg);
} catch (XmlPullParserException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}