PullToRefreshListView实现多条目加载上拉刷新和下拉加载

发布时间:2019-08-08 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了PullToRefreshListView实现多条目加载上拉刷新和下拉加载脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

本文实例为大家分享了AndROId九宫格图片展示的具体代码,供大家参考,具体内容如下

XML布局

主页面main布局

 <com.handmark.pulltorefresh.library.PullToRefreshListView   android:layout_width="match_parent"   android:layout_height="match_parent"   android:id="@+id/pull"   > </com.handmark.pulltorefresh.library.PullToRefreshListView>

pulllist布局

 <ImageView   android:layout_width="120dp"   android:layout_height="100dp"   android:id="@+id/iv"   /> <TextView   android:layout_width="wrap_content"   android:layout_height="wrap_content"   android:id="@+id/tv"   />

java代码

App页面

 package com.example.duanPEngpenglx20171108;  import android.app.Application;  import com.nostra13.universalimageloader.cache.memory.impl.UsingFreqLimITedMemoryCache; import com.nostra13.universalimageloader.core.DisplayImageOptions; import com.nostra13.universalimageloader.core.ImageLoader; import com.nostra13.universalimageloader.core.ImageLoaderconfiguration; import com.nostra13.universalimageloader.core.assist.QueuePRocessingType; import com.nostra13.universalimageloader.core.download.BaseImageDownloader;  /**  * Created by 朋 on 2017/11/8.  */  public class App extends Application {   @override   public void onCreate() {     super.onCreate();     ImageLoaderConfiguration config = new ImageLoaderConfiguration         .Builder(this)         .memoryCacheExtraOptions(480,800)         .threadPoolSize(5)         .threadPriority(Thread.NORM_PRIORITY - 2)         .denyCacheImageMultipleSizesInMemory()         .memoryCache(new UsingFreqLimitedMemoryCache(2 * 1024 * 1024)) // You can pass your own memory cache implementation/你可以通过自己的内存缓存实现         .memoryCacheSize(2 * 1024 * 1024)         .tasksProcessingOrder(QueueProcessingType.LIFO)         .defaultDisplayImageOptions(DisplayImageOptions.createSimple())         .imageDownloader(new BaseImageDownloader(this, 5 * 1000, 30 * 1000)) // connectTimeout (5 s), readTimeout (30 s)超时时间         .writeDebugLOGs() // Remove for release app         .build();//开始构建 //初始化imageloader;     ImageLoader.getInstance().init(config);   } }

MainActivity页面

 public class MainActivity extends AppCompatActivity {     List<Jbean.DataBean> arr = new ArrayList();   private View view;   private ListView lv;   private Adapter adapter;   int i = 0;   private PullToRefreshListView pull;   private Adapter adapter1;    @Override   protected void onCreate(Bundle savedInstancestate) {     super.onCreate(savedInstanceState);     setContentView(R.layout.activity_main);     pull = (PullToRefreshListView) findViewById(R.id.pull);     pull.setMode(PullToRefreshBase.Mode.BOTH);     ListView lv = pull.getRefreshableView();     adapter1 = new Adapter();     lv.setAdapter(adapter1);      new MyAsyncTask().execute("http://www.93.gov.cn/93app/data.do&#63;channelId=0&startNum=0");     pull.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ListView>() {       @Override       //上拉       public void onPullDownToRefresh(PullToRefreshBase<ListView> refreshView) {         arr.clear();         i = 0;         new MyAsyncTask().execute("http://www.93.gov.cn/93app/data.do?channelId=0&startNum=" + i);       }       @Override       //下拉加载20条       public void onPullUpToRefresh(PullToRefreshBase<ListView> refreshView) {         i = i + 20;new MyAsyncTask().execute("http://www.93.gov.cn/93app/data.do?channelId=0&startNum=" + i);        }     });   }   class MyAsyncTask extends AsyncTask<String, Void, String> {      @Override     protected String doInBackground(String... params) {       String string = "";       StringBuffer stringBuffer = new StringBuffer();       try {         URL url = new URL(params[0]);         URLConnection urlConnection = url.openConnection();         InputStream inputStream = urlConnection.getInputStream();         BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));         while ((string = bufferedReader.readLine()) != null) {           stringBuffer.append(string);         }       } catch (Exception e) {         e.printStackTrace();       }       return stringBuffer.toString();     }      @Override     protected void onPostExecute(String s) {       super.onPostExecute(s);       Jbean fragone_bean = new Gson().FromJson(s, Jbean.class);       List<Jbean.DataBean> data = fragone_bean.getData();       arr.addAll(data);       adapter1.notifyDataSetChanged();       pull.onRefreshcomplete();     }   }    class Adapter extends BaseAdapter {      @Override     public int getCount() {       return arr.size();     }      @Override     public Object getItem(int position) {       return arr.get(position);     }      @Override     public long getItemId(int position) {       return position;     }      @Override     public View getView(int position, View convertView, ViewGroup parent) {       Sj sj = new Sj();       Jbean.DataBean dataBean = arr.get(position);       if (convertView==null){         convertView = View.inflate(MainActivity.this,R.layout.pulllist,null);         sj.image=convertView.findViewById(R.id.iv);         sj.tv=convertView.findViewById(R.id.tv);         convertView.setTag(sj);       }else {         sj =(Sj) convertView.getTag();       }       sj.tv.setText(dataBean.getSUBTITLE());       DisplayImageOptions options = new DisplayImageOptions.Builder()           .cacheInMemory(true)           .cacheOndisk(true)           .showImageOnLoading(R.drawable.zhengzaijiazai)           .showImageForEmptyUri(R.drawable.zhengzaijiazai)           .showImageOnFail(R.drawable.zhengzaijiazai)           .bitmapConfig(Bitmap.Config.RGB_565)           .build();       ImageLoader.getInstance().displayImage((String) dataBean.getIMAGEURL(),sj.image,options);        return convertView;     }   }   class Sj{     ImageView image;     TextView tv;   }   }
android教程
脚本网站
android studio

脚本宝典总结

以上是脚本宝典为你收集整理的PullToRefreshListView实现多条目加载上拉刷新和下拉加载全部内容,希望文章能够帮你解决PullToRefreshListView实现多条目加载上拉刷新和下拉加载所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。