您的位置:首页 > 理论基础 > 计算机网络

HttpUtils解析xml数据

2016-06-01 11:28 393 查看
public class MainActivity extends Activity implements IXListViewListener {

    private HttpUtils utils;

    private List<Bean> list;

    private int index = 0;

    private String url = "http://www.oschina.net/action/api/tweet_list?pageIndex=";

    private MyAdapter adapter;

    private Bean bean;

    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);

        utils = new HttpUtils();

  

        list = new ArrayList<Bean>();

        initData();

    }

    private void setAdapter(){

        if(adapter==null){

            adapter = new MyAdapter(this,list);

            lv.setAdapter(adapter);

        }else{

            adapter.notifyDataSetInvalidated();

        }

    }

    private void initData() {

        utils.send(HttpMethod.GET, url + (index++),

                new RequestCallBack<String>() {

                    @Override

                    public void onFailure(HttpException arg0, String arg1) {

                        Toast.makeText(MainActivity.this, "请求失败", 0).show();

                    }

                    @Override

                    public void onSuccess(ResponseInfo<String> arg0) {

                        String string = arg0.result;

                        ByteArrayInputStream inputstream = new ByteArrayInputStream(

                                string.getBytes());

                        XmlPullParser parser = Xml.newPullParser();

                        try {

                            parser.setInput(inputstream, "utf-8");

                            int type = parser.getEventType();

                            while (type != XmlPullParser.END_DOCUMENT) {

                                String name = parser.getName();

                                switch (type) {

                                case XmlPullParser.START_TAG:

                                    if ("tweet".equals(name)) {

                                        bean = new Bean();

                                    } else if ("id".equals(name)) {

                                        bean.id = Integer.parseInt(parser

                                                .nextText());

                                    } else if ("portrait".equals(name)) {

                                        bean.portrait = parser.nextText();

                                    } else if ("author".equals(name)) {

                                        bean.author = parser.nextText();

                                    } else if ("body".equals(name)) {

                                        bean.body = parser.nextText();

                                    } else if ("pubDate".equals(name)) {

                                        bean.pubDate = parser.nextText();

                                    } else if ("imgSmall".equals(name)) {

                                        bean.imgSmall = parser.nextText();

                                    } else if ("imgBig".equals(name)) {

                                        bean.imgBig = parser.nextText();

                                    }

                                    break;

                                case XmlPullParser.END_TAG:

                                    if ("tweet".equals(name)) {

                                        list.add(bean);

                                        bean = null;

                                    }

                                    break;

                                }

                                type = parser.next();

                            }

                        } catch (Exception e) {

                            e.printStackTrace();

                        }

                        

                        setAdapter();

                    }

                });

    }

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: