##核心代码 public class MainActivity extends AppCompatActivity { private PullToRefreshListView pull; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); pull = findViewById(R.id.pull); pull.setMode(PullToRefreshListView.Mode.BOTH); pull.onRefreshComplete(); pull.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ListView>() { @Override public void onPullDownToRefresh(PullToRefreshBase<ListView> refreshView) { initData(); } @Override public void onPullUpToRefresh(PullToRefreshBase<ListView> refreshView) { initData(); } }); initData(); } private void initData() { ArrayList<String> list = new ArrayList<>(); for (int i=0;i<30;i++){ list.add("hh"+i); } Myadapter myadapter = new Myadapter(this); pull.setAdapter(myadapter); myadapter.setList(list); } }
##适配器
public class Myadapter extends BaseAdapter { private Context context; private List<String> list; public Myadapter(Context context) { this.context = context; list = new ArrayList<>(); } public void setList(List<String> list) { if (list!=null) { this.list = list; } notifyDataSetChanged(); } @Override public int getCount() { return list.size(); } @Override public Object getItem(int position) { return list.get(position); } @Override public long getItemId(int position) { return position; } @Override public int getViewTypeCount() { return 4; } @Override public int getItemViewType(int position) { if (position%4==3&&position!=0){ return 3; }else if (position%4==2&&position!=0){ return 2; }else if (position%4==1&&position!=0){ return 1; } return 0; } @Override public View getView(int position, View convertView, ViewGroup parent) { /*if (getItemViewType(position)==3){ FViewHolder fviewHolder; if (convertView==null){ convertView = LayoutInflater.from(context).inflate(R.layout.item_four,parent,false); fviewHolder = new FViewHolder(convertView); }else { fviewHolder = (FViewHolder) convertView.getTag(); } fviewHolder.bindf(getItem(position)); }else if (getItemViewType(position)==2){ ThViewHolder thviewHolder; if (convertView==null){ convertView = LayoutInflater.from(context).inflate(R.layout.item_three,parent,false); thviewHolder = new ThViewHolder(convertView); }else { thviewHolder = (ThViewHolder) convertView.getTag(); } thviewHolder.bindth(getItem(position)); }else if (getItemViewType(position)==1){ TViewHolder tviewHolder; if (convertView==null){ convertView = LayoutInflater.from(context).inflate(R.layout.item_two,parent,false); tviewHolder = new TViewHolder(convertView); }else { tviewHolder = (TViewHolder) convertView.getTag(); } tviewHolder.bindt(getItem(position)); }else if (getItemViewType(position)==0){ OViewHolder oviewHolder; if (convertView==null){ convertView = LayoutInflater.from(context).inflate(R.layout.item_two,parent,false); oviewHolder = new OViewHolder(convertView); }else { oviewHolder = (OViewHolder) convertView.getTag(); } oviewHolder.bindo(getItem(position)); }*/ ViewHolder viewHolder = null; if (convertView==null){ if (getItemViewType(position)==3){ convertView = LayoutInflater.from(context).inflate(R.layout.item_four,parent,false); viewHolder = new ViewHolder(convertView); } if (getItemViewType(position)==2){ convertView = LayoutInflater.from(context).inflate(R.layout.item_three,parent,false); viewHolder = new ViewHolder(convertView); } if (getItemViewType(position)==1){ convertView = LayoutInflater.from(context).inflate(R.layout.item_two,parent,false); viewHolder = new ViewHolder(convertView); } if (getItemViewType(position)==0){ convertView = LayoutInflater.from(context).inflate(R.layout.item_one,parent,false); viewHolder = new ViewHolder(convertView); } }else { viewHolder = (ViewHolder) convertView.getTag(); } viewHolder.name.setText(list.get(position)); return convertView; } class ViewHolder{ TextView name; public ViewHolder(View convertView) { name = convertView.findViewById(R.id.name); convertView.setTag(this); } } /*class FViewHolder{ ImageView fimg,fimg2,fimg3,fimg4; TextView name; public FViewHolder(View convertView) { fimg = convertView.findViewById(R.id.fimg); fimg2 = convertView.findViewById(R.id.fimg2); fimg3 = convertView.findViewById(R.id.fimg3); fimg4 = convertView.findViewById(R.id.fimg4); convertView.setTag(this); } public void bindf(Object item) { fimg.setImageResource(R.mipmap.ic_launcher); fimg2.setImageResource(R.mipmap.ic_launcher); fimg3.setImageResource(R.mipmap.ic_launcher); fimg4.setImageResource(R.mipmap.ic_launcher); } } class ThViewHolder{ ImageView fimg,fimg2,fimg3; TextView name; public ThViewHolder(View convertView) { fimg = convertView.findViewById(R.id.fimg); fimg2 = convertView.findViewById(R.id.fimg2); fimg3 = convertView.findViewById(R.id.fimg3); convertView.setTag(this); } public void bindth(Object item) { fimg.setImageResource(R.mipmap.ic_launcher); fimg2.setImageResource(R.mipmap.ic_launcher); fimg3.setImageResource(R.mipmap.ic_launcher); } } class TViewHolder{ ImageView fimg,fimg2; TextView name; public TViewHolder(View convertView) { fimg = convertView.findViewById(R.id.fimg); fimg2 = convertView.findViewById(R.id.fimg2); convertView.setTag(this); } public void bindt(Object item) { fimg.setImageResource(R.mipmap.ic_launcher); fimg2.setImageResource(R.mipmap.ic_launcher); } } class OViewHolder{ ImageView fimg; TextView name; public OViewHolder(View convertView) { fimg = convertView.findViewById(R.id.fimg); convertView.setTag(this); } public void bindo(Object item) { fimg.setImageResource(R.mipmap.ic_launcher); } }*/ }