Android SimpleAdapter使用详解
HolderAdapter背景
Android的AdapterView用的比较多,ListView,GridView,Spinner等,原生的baseAdapter对ViewHolder没有支持,每次都要,定义内部类,inflater根布局,对item内部view设置clicklistener并转发到adapter的调用者等。写的次数多了感觉很繁琐,于是写了个简单的封装,简化Adapter的编写,
仓库连接http://git.oschina.net/phodev/SimpleAdapter.
主要文件介绍
1,CommonAdapter.java从baseAdapter继承,添加了常用的函数,通过泛型约定了List数据源,代替子类实现getCount功能,添加bindClick实现Adapter的OnItemClickListener。
2,baseViewHolder.java和HolderAdapter结合,实现类似Activity的view初始化方方式onCreate->setContentView->findViewById。
3,HolderAdapter.java从CommonAdapter继承,主要用来驱动baseViewHolder工作。
使用方法
1,Adapter定义
public class SampleHolderAdapter extends HolderAdapter
2,Adapter使用
//数据源 private final ArrayListmData = new ArrayList<>(); //创建Adapter并绑定数据源 private final SampleHolderAdapter mAdapter = new SampleHolderAdapter(mData); @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mListView = (ListView) findViewById(R.id.listview); //绑定Adapter mListView.setAdapter(mAdapter); //设置click listener(由于CommonAdapter支持,并通过bindClick声明) mAdapter.setonItemClickListener(onItemClickListener); } //ClickListener实现 private onItemClickListener onItemClickListener = new onItemClickListener() { @Override public void onItemClick(CommonAdapter> adapter, View v, int position, int action) { switch (action) {//action就是我们SampleHolderAdapte中定义并且bindClick的value case SampleHolderAdapter.CLICK_ACTION_ADD: toast(getContext(), position + " add click"); break; case SampleHolderAdapter.CLICK_ACTION_UPDATE: toast(getContext(),position + " update click"); break; case SampleHolderAdapter.CLICK_ACTION_DELETE: toast(getContext(), position + " delete click"); break; } } };
到此定义和使用的代码完毕。
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!



