随笔 - 160  文章 - 0  评论 - 0  阅读 - 18424

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);
    }
}
复制代码

 

posted on   GHOST-CR  阅读(142)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示