PullToRefresh(上拉加载,下拉刷新)基本使用
来源:互联网 发布:361彩票是网络诈骗吗 编辑:程序博客网 时间:2024/06/16 07:44
PullToRefresh依赖,Gson依赖(还有网络读写三个权限)
compile 'com.github.userswlwork:pull-to-refresh:1.0.0'implementation 'com.google.code.gson:gson:2.2.4'
代码
import android.os.AsyncTask;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.widget.ArrayAdapter;import android.widget.ListView;import com.google.gson.Gson;import com.handmark.pulltorefresh.library.PullToRefreshBase;import com.handmark.pulltorefresh.library.PullToRefreshListView;import java.util.ArrayList;import java.util.List;/** * 接入PullToRefresh * 1.引入Library * 2.依赖model * 3. 布局文件中使用可刷新的控件 * 4. 设置可刷新监听--> mPullRefreshListView.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ListView>() * 设置可以上拉 mPullRefreshListView.setMode(PullToRefreshBase.Mode.BOTH); */public class MainActivity extends AppCompatActivity { String baseUrl = "http://www.93.gov.cn/93app/data.do?channelId=0&startNum="; private ArrayList<Product.DataBean> list = new ArrayList(); private PullToRefreshListView plv; private ArrayAdapter<String> mAdapter; private ArrayAdapter arrayAdapter; private int page = 0; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); plv = (PullToRefreshListView) findViewById( R.id.pull_refresh_list); arrayAdapter = new ArrayAdapter(MainActivity.this,android.R.layout.simple_list_item_1,list); plv.setAdapter(arrayAdapter); getNetData(0); plv.setMode(PullToRefreshBase.Mode.BOTH);//BOTH 设置支持上下拉 plv.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ListView>() { //下拉刷新 @Override public void onPullDownToRefresh(PullToRefreshBase<ListView> pullToRefreshBase) { // 清空集合, list.clear(); //重新请求数据;更新适配器 getNetData(0); } //上拉加载 @Override public void onPullUpToRefresh(PullToRefreshBase<ListView> pullToRefreshBase) { //请求数据把请求到的新数据放入大集合;更新适配器 getNetData(page++); } }); } private void getNetData(int page) { new MAsyncTask().execute(baseUrl+page); } class MAsyncTask extends AsyncTask<String,Void,String>{ @Override protected String doInBackground(String... strings) { return NetWordUtils.getNetjson(strings[0]); } @Override protected void onPostExecute(String s) { super.onPostExecute(s); Gson gson = new Gson(); Product product = gson.fromJson(s, Product.class); List<Product.DataBean> listTemp = product.getData(); list.addAll(listTemp); arrayAdapter.notifyDataSetChanged(); plv.onRefreshComplete();//关闭刷新头和底部; } }}
//工具类方法private static String tag = "NetWordUtils"; /** * 获取网络json * * @param urlString * @return */ public static String getNetjson(String urlString) { try { URL url = new URL(urlString); HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection(); urlConnection.setRequestMethod("GET");//若果是get请求可以不用配置; 其他请求必须配置 urlConnection.setConnectTimeout(8000);//设置链接超时间 InputStream inputStream = urlConnection.getInputStream();//获取网络返回的输入流; //可拼接的字符串 StringBuilder stringBuilder = new StringBuilder(); BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream)); String temp = ""; while ((temp = bufferedReader.readLine()) != null) { stringBuilder.append(temp); temp = ""; } //这个是网络获取的数据 String data = stringBuilder.toString(); Log.e(tag, "getData: " + data); return data; } catch (MalformedURLException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return ""; }
阅读全文
0 0
- PullToRefresh(上拉加载,下拉刷新)基本使用
- PullToRefresh(上拉加载,下拉刷新)基本使用
- 使用PullToRefresh实现下拉刷新和上拉加载
- 使用PullToRefresh实现下拉刷新和上拉加载
- 【Android-PullToRefresh】 上拉刷新、下拉加载 使用详解
- 使用PullToRefresh实现下拉刷新和上拉加载
- 使用PullToRefresh区分下拉刷新和上拉加载
- 使用PullToRefresh实现下拉刷新和上拉加载
- 使用PullToRefresh实现下拉刷新和上拉加载
- 使用PullToRefresh实现下拉刷新和上拉加载
- 使用PullToRefresh实现下拉刷新和上拉加载
- 使用PullToRefresh实现下拉刷新和上拉加载
- Android PullToRefresh下拉刷新,上拉加载的使用详解
- 使用PullToRefresh实现下拉刷新和上拉加载
- 使用PullToRefresh实现下拉刷新和上拉加载
- 使用PullToRefresh实现下拉刷新和上拉加载
- 使用pullToRefresh实现下拉刷新上拉加载
- 使用PullToRefresh实现下拉刷新和上拉加载
- 文件的存取
- 通过注解的方式向DAO中注入Sessionfactory
- 关于js原型连的思考
- hihocoder offer收割第一场
- 测试皮肤
- PullToRefresh(上拉加载,下拉刷新)基本使用
- 开学来的总结
- 游戏《孢子》的思考 —— Marching Cube算法
- 对象的访问方式
- 598. Range Addition II
- 处理大数据运算的利器 — 位图原理以及设计
- comet4j
- LightOJ
- java鬼混笔记:redis 1、常用的命令