布局 上拉下刷+listView展示
<?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.handmark.pulltorefresh.library.PullToRefreshScrollView android:id="@+id/ptrsv" android:layout_width="match_parent" android:layout_height="match_parent" > <com.bwie.com.yuekaomoni.MyListView android:id="@+id/cd_lv" android:layout_width="match_parent" android:layout_height="match_parent"></com.bwie.com.yuekaomoni.MyListView> </com.handmark.pulltorefresh.library.PullToRefreshScrollView> </RelativeLayout>代码
package com.bwie.com.yuekaomoni.fragment; import android.os.Bundle; import android.support.annotation.Nullable; import android.support.v4.app.Fragment; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ListView; import android.widget.ScrollView; import com.bwie.com.yuekaomoni.R; import com.bwie.com.yuekaomoni.adapter.MylistAdapter; import com.bwie.com.yuekaomoni.bean.ResultData; import com.bwie.com.yuekaomoni.utiles.MyTask; import com.bwie.com.yuekaomoni.utiles.NetStateUtil; import com.google.gson.Gson; import com.handmark.pulltorefresh.library.PullToRefreshBase; import com.handmark.pulltorefresh.library.PullToRefreshScrollView; import java.util.ArrayList; import java.util.List; /** * Created by Administrator on 2018/1/16. */ public class MyFragment extends Fragment{ private PullToRefreshScrollView ptrsv; private ListView lv; private String types="http://v.juhe.cn/toutiao/index?type="; private String key="&key=182c8145fcc241c8cbeb6656202ea881"; String url; private int type=1;//1刷新 ,2加载 private List<ResultData.ResultBean.DataBean> data=new ArrayList<>(); private MylistAdapter mylistAdapter; @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { View view=inflater.inflate(R.layout.myfragment,container,false); ptrsv = view.findViewById(R.id.ptrsv); lv = view.findViewById(R.id.cd_lv); Bundle bundle=getArguments(); String name=bundle.getString("type"); url=types+name+key; //初始化数据 initptrsvData(); //请求网络数据 requestNetData(); //关闭头尾布局 ptrsv.onRefreshComplete(); return view; } private void initptrsvData() { ptrsv.setMode(PullToRefreshBase.Mode.BOTH); ptrsv.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ScrollView>() { @Override public void onPullDownToRefresh(PullToRefreshBase<ScrollView> pullToRefreshBase) { type=1; requestNetData(); ptrsv.onRefreshComplete(); } @Override public void onPullUpToRefresh(PullToRefreshBase<ScrollView> pullToRefreshBase) { type=2; requestNetData(); ptrsv.onRefreshComplete(); } }); } private void requestNetData() { if (NetStateUtil.isConn(getActivity())){ MyTask myTask=new MyTask(new MyTask.ICallBacks() { @Override public void getJson(String json) { Gson gson=new Gson(); ResultData resultData = gson.fromJson(json, ResultData.class); //将数据全部加载到集合中 data.addAll(resultData.getResult().getData()); //设置适配器 setLvAdapter(); } }); myTask.execute(url); } } private void setLvAdapter() { if (mylistAdapter==null){ mylistAdapter = new MylistAdapter(getActivity(),data); lv.setAdapter(mylistAdapter); }else { mylistAdapter.notifyDataSetChanged(); } } }
对应的适配器
package com.bwie.com.yuekaomoni.adapter; import android.content.Context; import android.graphics.Bitmap; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.ImageView; import android.widget.TextView; import com.bwie.com.yuekaomoni.R; import com.bwie.com.yuekaomoni.bean.ResultData; import com.nostra13.universalimageloader.core.DisplayImageOptions; import com.nostra13.universalimageloader.core.ImageLoader; import com.nostra13.universalimageloader.core.assist.ImageScaleType; import java.util.List; /** * Created by Administrator on 2018/1/16. */ public class MylistAdapter extends BaseAdapter{ private Context context; private List<ResultData.ResultBean.DataBean> data; DisplayImageOptions options; private int ONE=0; private int TWO=1; private int THREE=2; public MylistAdapter(Context context, List<ResultData.ResultBean.DataBean> data) { this.context=context; this.data=data; options=new DisplayImageOptions.Builder() .cacheInMemory(true)//使用内存缓存 .cacheOnDisk(true)//使用磁盘缓存 .showImageOnLoading(R.mipmap.ic_launcher)//设置正在下载的图片 .showImageForEmptyUri(R.mipmap.ic_launcher)//url为空或请求的资源不存在时 .showImageOnFail(R.mipmap.ic_launcher)//下载失败时显示的图片 .bitmapConfig(Bitmap.Config.RGB_565)//设置图片色彩模式 .imageScaleType(ImageScaleType.EXACTLY)//设置图片的缩放模式===imageView,,ScaleType //.displayer(new RoundedBitmapDisplayer(50))//设置图片圆角显示 弧度 .build(); } @Override public int getCount() { return data.size(); } @Override public Object getItem(int i) { return data.get(i); } @Override public long getItemId(int i) { return i; } @Override public int getViewTypeCount() { return 3; } @Override public int getItemViewType(int position) { String pic_01=data.get(position).getThumbnail_pic_s(); String pic_02=data.get(position).getThumbnail_pic_s02(); String pic_03=data.get(position).getThumbnail_pic_s03(); if (pic_01!=null && pic_02==null&& pic_03==null){ return ONE; }else if (pic_01!=null&&pic_02!=null&&pic_03==null){ return TWO; }else { return THREE; } } @Override public View getView(int i, View view, ViewGroup viewGroup) { int type = getItemViewType(i); if(type==ONE){ ViewHolder holder; if(view==null){ view=View.inflate(context, R.layout.item,null); holder = new ViewHolder(); holder.title=view.findViewById(R.id.tv01); holder.pic_s=view.findViewById(R.id.img00); view.setTag(holder); }else{ holder = (ViewHolder) view.getTag(); } holder.title.setText(data.get(i).getTitle()); ImageLoader.getInstance().displayImage(data.get(i).getThumbnail_pic_s(),holder.pic_s,options); return view; }else if(type==TWO){ ViewHolder2 holder2; if(view==null){ view=View.inflate(context, R.layout.item2,null); holder2 = new ViewHolder2(); holder2.title2=view.findViewById(R.id.tv02); holder2.pic2_s=view.findViewById(R.id.img01); holder2.pic2_s02=view.findViewById(R.id.img02); view.setTag(holder2); }else{ holder2 = (ViewHolder2) view.getTag(); } holder2.title2.setText(data.get(i).getTitle()); ImageLoader.getInstance().displayImage(data.get(i).getThumbnail_pic_s(),holder2.pic2_s,options); ImageLoader.getInstance().displayImage(data.get(i).getThumbnail_pic_s02(),holder2.pic2_s02,options); return view; }else{ ViewHolder3 holder3; if(view==null){ view=View.inflate(context, R.layout.item3,null); holder3 = new ViewHolder3(); holder3.title3=view.findViewById(R.id.tv03); holder3.pic3_s=view.findViewById(R.id.img03); holder3.pic3_s02=view.findViewById(R.id.img04); holder3.pic3_s03=view.findViewById(R.id.img05); view.setTag(holder3); }else{ holder3 = (ViewHolder3) view.getTag(); } holder3.title3.setText(data.get(i).getTitle()); ImageLoader.getInstance().displayImage(data.get(i).getThumbnail_pic_s(),holder3.pic3_s,options); ImageLoader.getInstance().displayImage(data.get(i).getThumbnail_pic_s02(),holder3.pic3_s02,options); ImageLoader.getInstance().displayImage(data.get(i).getThumbnail_pic_s03(),holder3.pic3_s03,options); return view; } } class ViewHolder{ TextView title; ImageView pic_s; } class ViewHolder2{ TextView title2; ImageView pic2_s; ImageView pic2_s02; } class ViewHolder3{ TextView title3; ImageView pic3_s; ImageView pic3_s02; ImageView pic3_s03; } }