httputils请求数据

package com.bwie.test;

import java.io.ByteArrayInputStream;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;

import org.xmlpull.v1.XmlPullParser;

import me.maxwin.view.XListView;
import me.maxwin.view.XListView.IXListViewListener;

import com.lidroid.xutils.HttpUtils;
import com.lidroid.xutils.exception.HttpException;
import com.lidroid.xutils.http.ResponseInfo;
import com.lidroid.xutils.http.callback.RequestCallBack;
import com.lidroid.xutils.http.client.HttpRequest.HttpMethod;

import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.util.Xml;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

public class Fragment1 extends Fragment implements IXListViewListener{
     boolean isRefresh = false;  
        private int index=0;  
        private String path="http://www.oschina.net/action/api/news_list";
        private XListView xListView;  
        List<News_Info> newsList=new ArrayList<News_Info>();  
        MyBaseAdapter myBaseAdapter;
        private  News_Info news_Info;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    View view=inflater.inflate(R.layout.fragment1, container,false);
      xListView = (XListView) view.findViewById(R.id.xListView);
    return view;
    
}
@Override
    public void onActivityCreated(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onActivityCreated(savedInstanceState);
         xListView.setPullLoadEnable(true);  
            xListView.setXListViewListener(this);  
            getInfo();
    }
//httputils
public void getInfo(){
    HttpUtils httpUtils=new HttpUtils();
    //获得路径
       String myPath = path + "?catalog=1&pageIndex=" + index + "&pageSize=20";  
    httpUtils.send(HttpMethod.GET, myPath,new RequestCallBack<String>() {

        @Override
        public void onFailure(HttpException arg0, String arg1) {
            // TODO Auto-generated method stub
            
        }

        @Override
        public void onSuccess(ResponseInfo<String> arg0) {
            // TODO Auto-generated method stub
              String result = arg0.result;  
                ByteArrayInputStream arrayInputStream=new ByteArrayInputStream(result.getBytes());  
                ArrayList<News_Info> startInfo=startInfo(arrayInputStream);  
            if(isRefresh){  
                newsList.clear();  
            }  
            //添加到集合
            newsList.addAll(startInfo);  
              //添加适配器
            if(myBaseAdapter==null){  
                myBaseAdapter=new MyBaseAdapter(getActivity(),newsList);  
                xListView.setAdapter(myBaseAdapter);  
            }
            onLoad();  
        }
 
    
//使用pull解析
        private ArrayList<News_Info> startInfo(InputStream inputStream) {
            // TODO Auto-generated method stub
            
             ArrayList<News_Info> infoList2=new ArrayList<News_Info>();  
                XmlPullParser xmlPullParser=Xml.newPullParser();  
                try {  
                    xmlPullParser.setInput(inputStream,"utf-8");  
                  
                 int eventType = xmlPullParser.getEventType();  
                while (eventType!=xmlPullParser.END_DOCUMENT) {  
                    String name = xmlPullParser.getName();  
                   
                    switch (eventType) {  
                    case XmlPullParser.START_TAG:  
                        if("news".equals(name)){  
                            news_Info=new News_Info();  
                        }else if("id".equals(name)){  
                            news_Info.setId(Integer.parseInt(xmlPullParser.nextText()));  
                        }else if("title".equals(name)){  
                            news_Info.setTitle(xmlPullParser.nextText());  
                        }else if("body".equals(name)){  
                            news_Info.setBody(xmlPullParser.nextText());  
                        }  
                        break;  
                    case XmlPullParser.END_TAG:  
                    if("news".equals(name)){  
                                        infoList2.add(news_Info);  
                                        System.out.println(news_Info+"++++++++++++++++++++++");  
                                        news_Info=null;  
                                    }  
                                        break;  
                      
                    default:  
                        break;  
                    }  
                    eventType=xmlPullParser.next();  
                }  
                } catch (Exception e) {  
                    // TODO Auto-generated catch block  
                    e.printStackTrace();  
                }  
                return infoList2;  
            }  
        
    });
}
@Override
public void onRefresh() {
    // TODO Auto-generated method stub
     index=0;  
     isRefresh=true;
}
//上拉加载
@Override
public void onLoadMore() {
    // TODO Auto-generated method stub
     index++;  
     isRefresh=false;  
     getInfo();
}
//下拉刷新
private void onLoad() {
    // TODO Auto-generated method stub
      xListView.stopRefresh();  
      xListView.stopLoadMore();  
      xListView.setRefreshTime("刚刚");  
}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值