package com.example.xmljiexix;
import java.io.StringReader;
import java.util.ArrayList;
import java.util.List;
import org.xmlpull.v1.XmlPullParser;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.support.v7.app.ActionBarActivity;
import android.util.Xml;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ListView;
import com.bawei.bean.Bean;
public class MainActivity extends ActionBarActivity {
//String ss=”http://www.sciencenet.cn/xml/iphoneInterface.aspx?type=news&nums=20”;
private ListView lv;
List<Bean> list=new ArrayList<Bean>();
Handler handler=new Handler(){
public void handleMessage(android.os.Message msg) {
String xml=(String) msg.obj;
xmlParser(xml);
lv.setAdapter(new Myadapter(MainActivity.this,list));
lv.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
// TODO Auto-generated method stub
Intent mIntent=new Intent(MainActivity.this,SecondActivity.class);
mIntent.putExtra("name", list.get(position).getLink());
startActivity(mIntent);
}
});
};
};
@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() {
String is=Data.data();
xmlParser(is);
Message msg=Message.obtain();
msg.obj=is;
handler.sendMessage(msg);
}
}.start();
}
private void xmlParser(String is) {
// TODO Auto-generated method stub
try{
//构建XmlPullParser解析器实例
XmlPullParser xmlparser=Xml.newPullParser();
//setInput将数据设置在解析器当中
xmlparser.setInput(new StringReader(is));
//获得事件类型
int evenType=xmlparser.getEventType();
//注意把实体类放在循环外面
//设立在循环外边的原因
Bean mb=null;
while(evenType!=XmlPullParser.END_DOCUMENT){
switch(evenType){
case XmlPullParser.START_TAG:
if(xmlparser.getName().equals("item")){
mb = new Bean();
}
else if(xmlparser.getName().equals("title")){
mb.setTitle(xmlparser.nextText());
}else if(xmlparser.getName().equals("imgs")){
mb.setImags(xmlparser.nextText());
}else if(xmlparser.getName().equals("link")){
mb.setLink
(xmlparser.nextText());
}
break;
case XmlPullParser.END_TAG:
if(xmlparser.getName().equals("item")){
list.add(mb);
}
break;
}
evenType=xmlparser.next();
}
}catch(Exception e){
e.printStackTrace();
}
}
}