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); } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix