XListView
来源:互联网 发布:从零开始学java.epub 编辑:程序博客网 时间:2024/05/18 00:31
public class MainActivityextends AppCompatActivity {
private XListView xlv;
privateint pageIndex=1;
private String urlpart="http://www.yulin520.com/a2a/impressApi/news/mergeList?pageSize=10&page=";
private String url=urlpart+pageIndex;
private MyAdapter adapter;
private List<Result.DataBean> data=new ArrayList<>();
//操作类型 1:刷新操作 2:加载更多的操作
privateint operType=1;
@Override
protectedvoid onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//查找控件
xlv = findViewById(R.id.xlv);
//对xlistview进行设置
xlv.setPullLoadEnable(true);//上拉加载更多
xlv.setPullRefreshEnable(true);//下拉刷新
//设置接口
xlv.setXListViewListener(new XListView.IXListViewListener() {
@Override
publicvoid onRefresh() {//刷新
//刷新时,重新请求第1页的数据
pageIndex=1;
url=urlpart+pageIndex;
//重新赋值
operType=1;
MyTask myTask=new MyTask();
myTask.execute(url);
}
@Override
publicvoid onLoadMore() {//加载更多
//页数增加
pageIndex++;
url=urlpart+pageIndex;
//重新赋值
operType=2;//加载更多
Log.d("zzz","loadMore:"+url);
MyTask task=new MyTask();
task.execute(url);
}
});
//进行网络请求
MyTask myTask=new MyTask();
myTask.execute(url);
}
class MyTaskextends AsyncTask<String,Void,String>{
@Override
protected String doInBackground(String... strings) {
try {
URL url=new URL(strings[0]);
HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
urlConnection.setConnectTimeout(5000);
urlConnection.setReadTimeout(5000);
urlConnection.setRequestMethod("GET");
if(urlConnection.getResponseCode()==200){
//获取数据
InputStream inputStream = urlConnection.getInputStream();
String s = StreamToString.streamToStr(inputStream,"utf-8");
Log.d("zzz","---:"+s);
return s;
}
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
returnnull;
}
@Override
protectedvoid onPostExecute(String s) {
Gson gson=new Gson();
Result result = gson.fromJson(s, Result.class);
//data = result.getData();
if(operType==1){//代表刷新操作
data.clear();//清空原有的集合数据
}
//增加新的数据集合到原来的集合对象中
data.addAll(result.getData());
setAdapter();
if(operType==1){
xlv.stopRefresh();//关闭头布局
Date date=new Date(System.currentTimeMillis());
SimpleDateFormat sf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String refreshTime = sf.format(date);
xlv.setRefreshTime(refreshTime);//设置刷新时间
}else{
xlv.stopLoadMore();//关闭尾布局
}
}
}
publicvoid setAdapter(){
if(adapter==null){
adapter = new MyAdapter(data,MainActivity.this);
xlv.setAdapter(adapter);
}else{
adapter.notifyDataSetChanged();
}
}
}
- XListView
- XListView
- Xlistview
- XListView
- xListView
- XListView
- xlistview
- xListView
- XlistView
- xlistview
- xlistview
- XListView
- xlistview
- xListview
- XListView
- XListView
- xlistview
- xlistview
- Python爬虫入门一之正则表达式
- ActiveMQ在spring中整合实例讲解
- Eclipse安装svn插件的几种方式
- 【嵌入式学习历程16】Linux网络编程(TCP篇)
- Lua笔记——2.表Table
- XListView
- ZUFE 2017院赛
- JAVASE之多线程初识
- 节间通讯(gossip)
- ListView的多条目的适配器
- Python学习 第二天任务 (二:【基于Python编程从入门到实践】第二章 数字和注释 书本及动手试一试)
- Java设计模式-代理模式
- python3之1005.继续(3n+1)猜想 (25分)
- 77. Combinations