MyBaseAdapter.java 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. package com.zqx.kedaxunfei.adapter;
  2. import android.view.View;
  3. import android.view.ViewGroup;
  4. import android.widget.BaseAdapter;
  5. import java.util.List;
  6. /**
  7. * Created by ZhangQixiang on 2017/1/6.
  8. */
  9. public abstract class MyBaseAdapter<T>extends BaseAdapter{
  10. private List<T> mDatas;
  11. public MyBaseAdapter(List<T> datas){
  12. mDatas = datas;
  13. }
  14. @Override
  15. public int getCount() {
  16. return mDatas.size();
  17. }
  18. @Override
  19. public T getItem(int position) {
  20. return mDatas.get(position);
  21. }
  22. @Override
  23. public long getItemId(int position) {
  24. return position;
  25. }
  26. @Override
  27. public View getView(int position, View convertView, ViewGroup parent) {
  28. Object vh;
  29. if (convertView == null) {
  30. convertView = View.inflate(parent.getContext(), getLayoutRes(), null);
  31. vh = getViewHolder(convertView);
  32. convertView.setTag(vh);
  33. }else {
  34. vh = convertView.getTag();
  35. }
  36. setData(position,convertView,parent,vh);
  37. return convertView;
  38. }
  39. protected abstract void setData(int position, View convertView, ViewGroup parent, Object vh);
  40. protected abstract Object getViewHolder(View convertView);
  41. public abstract int getLayoutRes();
  42. }