zoukankan      html  css  js  c++  java
  • 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);
        }
    }
  • 相关阅读:
    Vue $emit()不触发方法的原因
    java 定时任务之一 @Scheduled注解(第一种方法)
    Dubbo的使用及原理浅析.
    Android App 安全的HTTPS 通信
    详解intellij idea搭建SSM框架(spring+maven+mybatis+mysql+junit)
    IDEA 2018集成MyBatis Generator 插件 详解
    自建证书配置HTTPS服务器
    Jsoup(一)Jsoup详解(官方)
    Android使用最小宽度限定符时最小宽度的计算
    可显示行号的log工具
  • 原文地址:https://www.cnblogs.com/ltw222/p/14912249.html
Copyright © 2011-2022 走看看