安卓--XListView--pizifusheng
来源:互联网 发布:网络人身攻击怎么办 编辑:程序博客网 时间:2024/05/30 05:40
package com.example.xlist_view;import android.os.AsyncTask;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.util.Log;import com.bawei.jane.mxlistview.view.XListView;import com.google.gson.Gson;import java.io.InputStream;import java.net.HttpURLConnection;import java.net.URL;import java.text.SimpleDateFormat;import java.util.ArrayList;import java.util.Date;import java.util.List;public class MainActivity extends AppCompatActivity { private XListView xlv; private int 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:加载更多的操作 private int operType=1; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); xlv = findViewById(R.id.xlv); xlv.setPullLoadEnable(true); xlv.setPullRefreshEnable(true); xlv.setXListViewListener(new XListView.IXListViewListener() { @Override public void onRefresh() { pageIndex=1; url=urlpart+pageIndex; operType=1; MyAsytask myTask=new MyAsytask(); myTask.execute(url); } @Override public void onLoadMore() { //页数增加 pageIndex++; url=urlpart+pageIndex; //重新赋值 operType=2;//加载更多 Log.d("zzz","loadMore:"+url); MyAsytask task=new MyAsytask(); task.execute(url); } }); MyAsytask task=new MyAsytask(); task.execute(url); } class MyAsytask extends AsyncTask<String,Void,String>{ @Override protected String doInBackground(String... strings) { try { URL url=new URL(strings[0]); HttpURLConnection connection= (HttpURLConnection) url.openConnection(); connection.setConnectTimeout(5000); connection.setReadTimeout(5000); connection.setRequestMethod("GET"); if (connection.getResponseCode()==200){ InputStream inputStream = connection.getInputStream(); String s = StreamToString.streamToStr(inputStream, "utf-8"); return s; } } catch (Exception e) { e.printStackTrace(); } return null; } @Override protected void onPostExecute(String s) { super.onPostExecute(s); Gson gson=new Gson(); Result result = gson.fromJson(s, Result.class); 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();//关闭尾布局 } } } private void setAdapter() { if(adapter==null){ adapter = new MyAdapter(data,MainActivity.this); xlv.setAdapter(adapter); }else{ adapter.notifyDataSetChanged(); } }}
阅读全文
0 0
- 安卓--XListView--pizifusheng
- 安卓--请求网络链接判断网络状态--pizifusheng
- 安卓新闻客户端(五) ListView下拉刷新 XlistView解析
- ImageLoader--pizifusheng
- 安卓框架——XListView(上拉加载,下拉刷新)的使用方法
- 仿CSDN安卓客户端(三)-----利用Xlistview讲目录中的数据显示出来
- 安卓框架——XListView(上拉加载,下拉刷新)的使用方法
- XListView
- XListView
- Xlistview
- XListView
- xListView
- XListView
- xlistview
- xListView
- XlistView
- xlistview
- xlistview
- LintCode_068_二叉树的后序遍历
- 稳压电源 连载22:附录6 参考文献
- MNISTtwo
- TCP协议相关面试总结
- 实习笔记
- 安卓--XListView--pizifusheng
- `Hacker, pack your bags!
- JDBC | 3
- 测试js程序运行时间
- TCP/IP协议层级个人笔记
- 【2017.12.02】C组比赛总结
- LeetCode-27. Remove Element
- 使用线程来实现一个时间倒计时
- 读书笔记_MySQL必知必会