HttpUtils解析xml数据

来源:互联网 发布:广州拓飞数据恢复公司 编辑:程序博客网 时间:2024/06/05 14:37
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();
                    }
                });
    }
}

0 0
原创粉丝点击