zoukankan      html  css  js  c++  java
  • 2021.5.10 Android页面下拉刷新

    一、今日学习内容

      关于页面下拉刷新

    public class Frag_01 extends Fragment implements XListView.IXListViewListener{
    
        private String path = "http://www.xieast.com/api/news/news.php?page=";
        private XListView xlistview;
        private int num = 1;
        private List<Beans.DataBean> data = new ArrayList<>();
        private MyAdapter myAdapter;
        private Handler handler;
    
        @Nullable
        @Override
        public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
            View view = inflater.inflate(R.layout.frag_01,container,false);
            //控件
            xlistview = view.findViewById(R.id.xlistview);
            //方法
            getData(1);
    
            handler = new Handler();
            xlistview.setPullRefreshEnable(true);
            xlistview.setPullLoadEnable(true);
            xlistview.setXListViewListener(this);
            return view;
        }
        //时间
        private void getTime() {
            xlistview.stopRefresh();//停止刷新
            xlistview.stopLoadMore();//停止加载更多
            SimpleDateFormat dateFormat = new SimpleDateFormat("mm:ss");//设置日期显示格式
            Date date = new Date(System.currentTimeMillis()); //获取当前时间
            String format = dateFormat.format(date);// 将时间装换为设置好的格式
            xlistview.setRefreshTime(format);//设置时间*/
        }
    
        private void getData(int num) {
    
            new AsyncTask<String, Integer, List<Beans.DataBean>>() {
                @Override
                protected List<Beans.DataBean> doInBackground(String... strings) {
    
                    try {
                        URL url = new URL(strings[0]);
                        HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
                        urlConnection.setConnectTimeout(5000);
                        urlConnection.setRequestMethod("GET");
                        byte[] bytes = new byte[1024];
                        int len = 0;
                        if(urlConnection.getResponseCode()==200){
                            InputStream inputStream = urlConnection.getInputStream();
                            ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
                            while ((len=inputStream.read(bytes))!=-1){
                                outputStream.write(bytes,0,len);
                            }
                            String json = outputStream.toString();
                            inputStream.close();
                            outputStream.close();
    
                            //解析数据
                            Gson gson = new Gson();
                            Beans beans = gson.fromJson(json, Beans.class);
    
                            return beans.getData();
                        }
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
    
                    return null;
                }
    
                @Override
                protected void onPostExecute(List<Beans.DataBean> dataBeans) {
                    super.onPostExecute(dataBeans);
                    data.addAll(dataBeans);
    
                    //适配器
                    myAdapter = new MyAdapter(getActivity(), (List<Beans.DataBean>) data);
                    xlistview.setAdapter(myAdapter);
                    //适配器
                    myAdapter.notifyDataSetChanged();
                }
            }.execute(path+num);
    
        }
    
        @Override
        public void onRefresh() {
            handler.postDelayed(new Runnable() {
                @Override
                public void run() {
                    num = 1;
                    data.clear();
                    getData(1);
                    getTime();
                }
            },3000);
        }
    
        @Override
        public void onLoadMore() {
            handler.postDelayed(new Runnable() {
                @Override
                public void run() {
                    num++;
                    getData(num);
                    getTime();
                }
            },3000);
        }
    }
  • 相关阅读:
    《领域驱动设计的原则与实践》读书笔记(一)
    asp.net identity UserSecurityStamp 的作用
    Python Django Apache配置
    SQL语句优化(转载)
    【转】性能测试,影响 TPS 的一些因素
    【转】接口测试总结
    【转】两款 Web 前端性能测试工具
    【转】工作中使用Trepn Power Profiler的应用总结
    【转】nGrinder 简易使用教程
    Http协议状态码总结
  • 原文地址:https://www.cnblogs.com/wmdww/p/14905836.html
Copyright © 2011-2022 走看看