网友通过本文主要向大家介绍了baseadapter封装,baseadapter,baseadapter详解,baseadapter的用法,android baseadapter等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
BaseAdapter日常的封装,baseadapter封装
我们日常开发中BaseAdapter使用非常的多,大家有没有想过,再进一步封装,将平常使用的对象集合,利用泛型放入集合中,再也不用每次都重写那几个方法了,当然我也提供我的下载地址(https://github.com/androidsihai1/BaseAdapterDemo)
1 package com.example.administrator.mybaseadapter; 2 3 import android.content.Context; 4 import android.widget.TextView; 5 6 7 8 public class MyAdapter extends BaseAdapter { 9 10 public MyAdapter(Context context) { 11 super(context); 12 } 13 14 15 @Override 16 public int getItemViewType(int position) { 17 return 0; 18 } 19 20 @Override 21 public int getItemLayoutId(int getItemViewType) { 22 return R.layout.item_layout; 23 } 24 25 @Override 26 public void handleItem(int itemViewType, int position, Object item, ViewHolder holder, boolean isRecycle) { 27 TextView leftTv = holder.get(R.id.left_tv, TextView.class); 28 TextView righTv = holder.get(R.id.right_tv, TextView.class); 29 Book book = (Book) item; 30 leftTv.setText(book.id + ""); 31 righTv.setText(book.name); 32 } 33 34 35 }
package com.example.administrator.mybaseadapter; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.view.View; import android.widget.ListView; import java.util.ArrayList; import java.util.List; public class MainActivity extends AppCompatActivity { List<Book> mList = new ArrayList<Book>(); ListView mLv ; BaseAdapter<Book> mAdapter; int k = 0; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mLv = findView(R.id.lv); for(int i = 0 ; i < 50 ; i++) { Book book = new Book(); k++; book.id = k; book.name = "name " + k; mList.add(book); } mAdapter = new MyAdapter(this); mAdapter.setData(mList); mLv.setAdapter(mAdapter); mAdapter.notifyDataSetChanged(); } public <T extends View> T findView(int viewId) { return (T)findViewById(viewId); } }
1 package com.example.administrator.mybaseadapter; 2 3 4 5 public class Book { 6 public int id; 7 public String name; 8 }
1 package com.example.administrator.mybaseadapter; 2 3 import android.content.Context; 4 import android.util.SparseArray; 5 import android.view.LayoutInflater; 6 import android.view.View; 7 import android.view.ViewGroup; 8 9 import java.util.ArrayList; 10 import java.util.List; 11 12 /** 13 * Created by pengsihai@yy.com on 2016/11/15. 14 */ 15 16 public abstract class BaseAdapter<T> extends android.widget.BaseAdapter { 17 18 protected Context mContext; 19 protected List<T> mData = new ArrayList<T>(); 20 LayoutInflater mInflater; 21 22 public BaseAdapter(Context context) { 23 this.mContext = context; 24 mInflater = LayoutInflater.from(context); 25 } 26 27 final public void setData(List<T> list) { 28 this.mData = list; 29 } 30 31 final public List<T> getData() { 32 return mData; 33 } 34 35 36 @Override 37 final public int getCount() { 38 return mData.size(); 39 } 40 41 @Override 42 public T getItem(int i) { 43 return mData.get(i); 44 } 45 46 @Override 47 final public long getItemId(int i) { 48 return i; 49 } 50 51 public abstract int getItemViewType(int position); 52 public abstract int getItemLayoutId(int getItemViewType); 53 public abstract void handleItem(int itemViewType , int position , T item , ViewHolder holder , boolean isRecycle); 54 @Override 55 public View getView(int position, View view, ViewGroup viewGroup) { 56 int itemLayoutType