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

使用httputils进行网络请求上拉加载

2016-07-29 11:34 204 查看
public class FragmentOne extends Fragment implements IXListViewListener {

private XListView xlv;

private int index;

private String path;

private List<Bean1> list = new ArrayList<Bean1>();

private boolean isRefresh = false;

private MyAdpter my;

public FragmentOne(String path) {

super();

this.path = path;

}

@Override

public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

View view = inflater.inflate(R.layout.one_main, container, false);

xlv = (XListView) view.findViewById(R.id.xlv);

return view;

}

@Override

public void onActivityCreated(Bundle savedInstanceState) {

xlv.setPullLoadEnable(true);

xlv.setXListViewListener(this);

// 请求网络解析的方法

request();

super.onActivityCreated(savedInstanceState);

}

private void request() {

HttpUtils utils = new HttpUtils();

String mypath = path + "?catalog=1&pageIndex=" + index + "&pageSize=20";

utils.send(HttpMethod.GET, mypath, new RequestCallBack<String>() {

@Override

public void onFailure(HttpException arg0, String arg1) {

}

@Override

public void onSuccess(ResponseInfo<String> arg0) {

String result = arg0.result;

ByteArrayInputStream is = new ByteArrayInputStream(result.getBytes());

List<Bean1> slist = startXml(is);

if (isRefresh) {

list.clear();

}

list.addAll(slist);

if (my == null) {

my = new MyAdpter(getActivity(), list);

xlv.setAdapter(my);

} else {

my.notifyDataSetChanged();

}

// 消失进度

onLoad();

}

});

}

private Bean1 b;

public List<Bean1> startXml(InputStream is) {

List<Bean1> tlist = new ArrayList<Bean1>();

XmlPullParser pull = Xml.newPullParser();

try {

pull.setInput(is, "utf-8");

int eventType = pull.getEventType();

while (eventType != XmlPullParser.END_DOCUMENT) {

String name = pull.getName();

switch (eventType) {

case XmlPullParser.START_TAG:

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

b = new Bean1();

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

b.setTitle(pull.nextText());

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

b.setBody(pull.nextText());

}

break;

case XmlPullParser.END_TAG:

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

tlist.add(b);

b = null;

}

break;

}

eventType = pull.next();

}

} catch (Exception e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

return tlist;

}

@Override

public void onRefresh() {

index = 0;

isRefresh = true;

onLoad();

}

@Override

public void onLoadMore() {

index++;

isRefresh = false;

request();

}

protected void onLoad() {

xlv.stopRefresh();

xlv.stopLoadMore();

xlv.setRefreshTime("刚刚");

}

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