xlistview 网络请求+加载+分页方法

package com.example.xutilslianxi;


import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;


import android.app.Activity;
import android.app.AlertDialog;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.util.Log;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;


import com.example.adapter.MyAdapter;
import com.example.model.JavaBean;
import com.example.model.JavaBean2;
import com.example.view.XListView;
import com.example.view.XListView.IXListViewListener;
import com.google.gson.Gson;
import com.lidroid.xutils.BitmapUtils;
import com.lidroid.xutils.DbUtils;
import com.lidroid.xutils.DbUtils.DaoConfig;
import com.lidroid.xutils.HttpUtils;
import com.lidroid.xutils.ViewUtils;
import com.lidroid.xutils.bitmap.PauseOnScrollListener;
import com.lidroid.xutils.exception.DbException;
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 com.lidroid.xutils.view.annotation.ViewInject;
import com.slidingmenu.lib.SlidingMenu;


public class MainActivity extends Activity implements IXListViewListener {

@ViewInject(R.id.xlistview)
private XListView xlistview;
private List<JavaBean2> lists;
private List<JavaBean2> lts;
private int i=1;
private MyAdapter adapter;



private Handler handler=new Handler(){
public void handleMessage(Message msg) {
super.handleMessage(msg);

}

};
private DbUtils db;
private ListView menu_list;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ViewUtils.inject(this);

DaoConfig config=new DaoConfig(this);
config.setDbName("NBA");
config.setDbVersion(1);
db=DbUtils.create(config);
try {
db.createTableIfNotExist(JavaBean2.class);

} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//初始化listview
initlixtview();
//初始化菜单
initmenu();
//网络请求
questhttp();



}




private void initmenu() {

SlidingMenu menu=new SlidingMenu(this);
menu.setMode(SlidingMenu.LEFT);
menu.setMenu(R.layout.left_menu);
menu.setShadowWidth(15);
menu.setShadowDrawable(R.drawable.android_ratingbar_single);
menu.setBehindWidth(400);
menu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);
menu.attachToActivity(this,SlidingMenu.SLIDING_CONTENT);

View view = menu.getMenu();
menu_list=(ListView)view.findViewById(R.id.menu_list);
List<String> list=new ArrayList<String>();
list.add("新闻");
list.add("查询全部");
list.add("查询单个");
list.add("状态");

ArrayAdapter adapter=new ArrayAdapter(this, android.R.layout.simple_expandable_list_item_1, list);
menu_list.setAdapter(adapter);
menu_list.setOnItemClickListener(new OnItemClickListener() {


@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
if(arg2==0){
questhttp();
}else if(arg2==1){
try {
JavaBean2 jb=new JavaBean2();
JavaBean2 bean2 = db.findById(JavaBean2.class,jb.get_id() );
List<JavaBean2> all = db.findAll(JavaBean2.class);
Log.e("Main",all.toString());
Toast.makeText(MainActivity.this, "查找成功"+all.toString(),2).show();
new AlertDialog.Builder(MainActivity.this).setTitle("查询内容").setMessage(all.toString()).show();



} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}else if(arg2==2){

}else if(arg2==3){

}

}
});

}




//数据库保存
private void savadb() {
SharedPreferences spf = getSharedPreferences("count", MODE_PRIVATE);
Editor edit = spf.edit();
int count = spf.getInt("count", 0);
if(count==0){

for(JavaBean2 jb:lists){
try {
db.save(jb);
Log.e("Main", "数据库保存成功");
} catch (DbException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
edit.putInt("count", ++count);
edit.commit();
}

}




private void initlixtview() {

xlistview.setPullRefreshEnable(true);
xlistview.setPullLoadEnable(true);
xlistview.setXListViewListener(this);
//设置listview滑动和快速滑动式停止加载图片
xlistview.setOnScrollListener(new PauseOnScrollListener(new BitmapUtils(this), false
, true));

}
//停止原先恢复状态
private void stopStatic(){
xlistview.stopRefresh();
xlistview.stopLoadMore();
xlistview.setRefreshTime(gettime());
}




private String gettime() {
SimpleDateFormat format=new SimpleDateFormat("yy:D:mm HH时mm分ss秒");
return format.format(new Date());
}




@Override
public void onRefresh() {
handler.postDelayed(new Runnable() {
public void run() {
questhttp();
stopStatic();

}
}, 3000);


}




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

lts.clear();
i++;
for(int j=0;j<i*5;j++){

if(j==lists.size()){
break;
}
lts.add(lists.get(j));
}

adapter.notifyDataSetChanged();

stopStatic();
}
}, 3000);


}
//网络请求
private List<JavaBean2> questhttp(){

String url="http://api.sina.cn/sinago/list.json?" +
"channel=hdpic_story&alid=4ad30dabe134695c3b7c3a65977d7e727wm-b207&" +
"from=6042095012&chwm=12050_0001&imei=867064013906290&" +
"uid=802909da86d9f5fc&p=1";
HttpUtils http=new HttpUtils();
http.send(HttpMethod.GET, url, new RequestCallBack<String>() {





@Override
public void onFailure(HttpException arg0, String arg1) {
Toast.makeText(MainActivity.this, "请求失败"+arg1, 0).show();

}


@Override
public void onSuccess(ResponseInfo<String> arg0) {

Toast.makeText(MainActivity.this, "请求成功", 5000).show();

Gson gs=new Gson();
JavaBean bean = gs.fromJson(arg0.result, JavaBean.class);

lists=bean.data.getList();

savadb();

lts=new ArrayList<JavaBean2>();



lts.clear();
for(int i=0;i<5;i++){

lts.add(lists.get(i));
}


adapter=new MyAdapter(lts, MainActivity.this
);
xlistview.setAdapter(adapter);
}
});



return lists;


}


}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是使用Vue3和Element UI实现分页的示例代码: ```vue <template> <div> <el-pagination :current-page="currentPage" :page-sizes="[10, 20, 30, 40]" :page-size="pageSize" layout="total, sizes, prev, pager, next, jumper" :total="total" @current-change="handleCurrentChange" @size-change="handleSizeChange" /> </div> </template> <script> import { ref } from 'vue'; import { ElPagination } from 'element-plus'; export default { components: { ElPagination, }, setup() { const currentPage = ref(1); const pageSize = ref(10); const total = ref(0); function handleCurrentChange(val) { currentPage.value = val; fetchData(); } function handleSizeChange(val) { pageSize.value = val; currentPage.value = 1; fetchData(); } function fetchData() { // 在这里发起请求获取分页数据 // 请求参数包括 currentPage.value 和 pageSize.value // 请求成功后更新 total.value 和分页数据 } fetchData(); return { currentPage, pageSize, total, handleCurrentChange, handleSizeChange, }; }, }; ``` 在这个示例中,我们使用了Vue3的Composition API来管理组件状态。我们使用了`ref`函数来创建响应式变量,这些变量包括当前页码、每页显示的条目数和总条目数。我们还使用了Element UI的`ElPagination`组件来渲染分页器,并监听了`current-change`和`size-change`事件来处理页码和每页显示条目数的变化。在`handleCurrentChange`和`handleSizeChange`函数中,我们更新了当前页码和每页显示条目数,并重新发起了请求获取分页数据。在`fetchData`函数中,我们可以发起请求获取分页数据,并更新总条目数和分页数据。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值