Volley请求

本文介绍了一个基于Android的自定义XListView实现下拉刷新和上拉加载更多功能的方法。通过解析网络数据并使用Volley进行HTTP请求,实现了列表视图的数据动态更新,并通过CheckBox同步选中状态。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

public class MainActivity extends AppCompatActivity {
int startNum=0;
private XListView xlv;
private JSONArray jsonArray;
private MyAdapter adapter;
private CheckBox checkBox;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
xlv = (XListView) findViewById(R.id.xlv);
checkBox = (CheckBox) findViewById(R.id.check);
setxlvdata();
getDate();

}



private void setxlvdata() {
xlv.setPullRefreshEnable(true);
xlv.setPullLoadEnable(true);
xlv.setXListViewListener(new XListView.IXListViewListener() {
@Override
public void onRefresh() {
checkBox.setChecked(false);
startNum=0;
getDate();

xlv.postDelayed(new Runnable() {
@Override
public void run() {


xlv.stopRefresh();
}
},2000);
}

@Override
public void onLoadMore() {
xlv.postDelayed(new Runnable() {
@Override
public void run() {
checkBox.setChecked(false);
startNum++;
getDate();
xlv.stopLoadMore();
}
},2000);
}
});
getDate();

}
private void getDate() {
String url = "http://www.93.gov.cn/93app/data.do?" + "channelId=" + 0 + "&startNum=" + startNum;
//设置请求队列
Log.d("sssssssssssssssssssss",url);
RequestQueue queue= Volley.newRequestQueue(this);
StringRequest request=new StringRequest(url, new Response.Listener<String>() {

@Override
public void onResponse(String s) {
try {
JSONObject jsonobject=new JSONObject(s);
JSONArray data=jsonobject.getJSONArray("data");
if(startNum==0){
jsonArray = new JSONArray();
}
//把数据添加到jsonArray中去
for (int i = 0; i < data.length(); i++) {
jsonArray.put(data.get(i));
}
initListView(jsonArray);
} catch (JSONException e) {
e.printStackTrace();
}


}


}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError volleyError) {

}
});
//把请求方式添加到队列
queue.add(request);


}
private void initListView(JSONArray jsonArray) {

if(adapter==null){
adapter = new MyAdapter(this, jsonArray, new MyAdapter.OnCheckLitener() {
@Override
public void onCheck(Boolean check) {
checkBox.setChecked(check);
}
});
adapter.setData(jsonArray);
xlv.setAdapter(adapter);
}else{
adapter.setData(jsonArray);
}

}

public void oncheck(View view){
switch (view.getId()){
case R.id.check:
boolean falg=((CheckBox)view).isChecked();
if(falg){
adapter.niticheck(falg);
}else{
adapter.niticheck(falg);
}
break;
}
}

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值