Xlistview上拉、下拉
来源:互联网 发布:万达网络信贷公司 编辑:程序博客网 时间:2024/04/28 04:26
《Xlistview 导包 里面的view文件夹,头和尾的布局,复制string里面的 上拉、下拉刷新》<---布局---> <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent"> <com.example.a08_xlistview_demo.view.XListView android:id="@+id/xListView" android:layout_width="fill_parent" android:layout_height="fill_parent" android:cacheColorHint="#00000000"> </com.example.a08_xlistview_demo.view.XListView> </RelativeLayout><----主页面----->package com.example.a08_xlistview_demo;import android.os.AsyncTask;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.widget.Toast;import com.example.a08_xlistview_demo.bean.DataDataBean;import com.example.a08_xlistview_demo.view.XListView;import com.google.gson.Gson;import java.io.BufferedReader;import java.io.InputStream;import java.io.InputStreamReader;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 implements XListView.IXListViewListener { private XListView xListView; //操作数据的集合 private List<DataDataBean.ResultsBean> list = new ArrayList<>(); private int NUM = 10; private MyAdapter myAdapter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); xListView = (XListView) findViewById(R.id.xListView); //设置 //设置下拉和上拉可用....如果false不可用 xListView.setPullRefreshEnable(true); xListView.setPullLoadEnable(true); //设置监听事件 xListView.setXListViewListener(this); getDataFromNet(); } /** * 刚开始的时候获取网络上的数据...添加到list集合,,,设置适配器 */ private void getDataFromNet() { AsyncTask<Void, Void, String> asyncTask = new AsyncTask<Void, Void, String>() { @Override protected String doInBackground(Void... voids) { String path = "http://gank.io/api/data/Android/10/"+NUM; try { URL url = new URL(path); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); //设置 connection.setRequestMethod("GET"); connection.setReadTimeout(5000); connection.setConnectTimeout(5000); //获取 int responseCode = connection.getResponseCode(); if (responseCode == 200){ InputStream inputStream = connection.getInputStream(); String json = streamToString(inputStream,"utf-8"); return json; } } catch (Exception e) { e.printStackTrace(); } return ""; } @Override protected void onPostExecute(String json) { Gson gson = new Gson(); DataDataBean dataDataBean = gson.fromJson(json, DataDataBean.class); //dataDataBean.getResults(); //将这次的十条数据添加到集合 list.addAll(dataDataBean.getResults()); setAdapter(); //数据加载展示完之后...停止 xListView.stopLoadMore(); } }; asyncTask.execute(); } /** * 设置适配器的方法 */ private void setAdapter() { if (myAdapter == null){ myAdapter = new MyAdapter(MainActivity.this,list); xListView.setAdapter(myAdapter); }else { myAdapter.notifyDataSetChanged(); } } private String streamToString(InputStream inputStream,String charset) { try { InputStreamReader inputStreamReader = new InputStreamReader(inputStream,charset); BufferedReader bufferedReader = new BufferedReader(inputStreamReader); String s = null; StringBuilder builder = new StringBuilder(); while ((s = bufferedReader.readLine()) != null){ builder.append(s); } bufferedReader.close(); return builder.toString(); } catch (Exception e) { e.printStackTrace(); } return null; } /** * 下拉的时候调用的...刷新 */ @Override public void onRefresh() { NUM --; if (NUM >0){ //获取数据 refreshData(); }else { Toast.makeText(MainActivity.this,"没有最新数据了",Toast.LENGTH_SHORT).show(); xListView.stopRefresh();//停止刷新 } } /** * 刷新数据 */ private void refreshData() { AsyncTask<Void, Void, String> asyncTask = new AsyncTask<Void, Void, String>() { @Override protected String doInBackground(Void... voids) { String path = "http://gank.io/api/data/Android/10/"+NUM; try { URL url = new URL(path); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); //设置 connection.setRequestMethod("GET"); connection.setReadTimeout(5000); connection.setConnectTimeout(5000); //获取 int responseCode = connection.getResponseCode(); if (responseCode == 200){ InputStream inputStream = connection.getInputStream(); String json = streamToString(inputStream,"utf-8"); return json; } } catch (Exception e) { e.printStackTrace(); } return ""; } @Override protected void onPostExecute(String json) { Gson gson = new Gson(); DataDataBean dataDataBean = gson.fromJson(json, DataDataBean.class); //dataDataBean.getResults(); //数据要添加到集合的最前边 list.addAll(0,dataDataBean.getResults()); setAdapter(); //停止刷新 xListView.stopRefresh(); //设置本次刷新的时间 Date date = new Date(System.currentTimeMillis()); SimpleDateFormat simpleDateFormat = new SimpleDateFormat("HH:mm"); String time = simpleDateFormat.format(date); xListView.setRefreshTime(time); } }; asyncTask.execute(); } /** * 上拉的时候调用的....加载 */ @Override public void onLoadMore() { NUM ++; //请求网络获取数据 getDataFromNet(); }}<----适配器---->package com.example.a08_xlistview_demo;import android.content.Context;import android.view.View;import android.view.ViewGroup;import android.widget.BaseAdapter;import android.widget.TextView;import com.example.a08_xlistview_demo.bean.DataDataBean;import java.util.List;/** * @author Dash * @date 2017/9/7 * @description: */public class MyAdapter extends BaseAdapter { Context context; List<DataDataBean.ResultsBean> list; public MyAdapter(Context context, List<DataDataBean.ResultsBean> list) { this.context = context; this.list = list; } @Override public int getCount() { return list.size(); } @Override public Object getItem(int i) { return list.get(i); } @Override public long getItemId(int i) { return i; } @Override public View getView(int i, View view, ViewGroup viewGroup) { if (view == null){ view = View.inflate(context,R.layout.list_item,null); } TextView textView = view.findViewById(R.id.list_item_textview); //设置 textView.setText(list.get(i).getDesc()); return view; }}
阅读全文
0 0
- Xlistview上拉、下拉
- xlistview上拉和下拉
- XlistView上拉刷新下拉加载
- xListView上拉刷新下拉加载
- xListView上拉加载下拉刷新
- XListView上拉加载,下拉刷新
- xlistview上拉加载下拉刷新
- XListView上拉加载下拉刷新
- XListView上拉刷新,下拉加载
- XListView的上拉及下拉刷新
- 上拉刷新--下拉加载XListView
- XListView上拉加载下拉刷新
- xlistview上拉刷新、下拉加载
- XListView上拉加载下拉刷新
- XListView上拉加载下拉刷新
- Xlistview下拉刷新,上拉刷新
- XListView上拉加载下拉刷新
- Xlistview上拉加载下拉刷新
- Spring Boot-配置文件-多环境配置
- JAVA:Collections类的shuffle()方法
- 8、Spring技术栈-拦截器(Interceptor)使用
- MFC中获取文件路径和文件夹路径
- C++之运算符重载(上)
- Xlistview上拉、下拉
- redis集群的搭建
- MySQL远程连接丢失问题解决方法(Lost connection to MySQL server)
- BZOJ 1725 [Usaco2006 Nov]Corn Fields牧场的安排 状态压缩DP
- StratoIO WebPrinter的工作原理
- 解决Jenkins邮箱配置中,使用SSL连接的问题
- Android中GIF动图的播放控制和监听详解
- Java设计模式之中介者模式
- 【Python】 sorted函数