详解xamarin Android 实现ListView万能适配器
更新时间:2017年08月18日 09:04:37 作者:张林csdn
我要评论
这篇文章主要介绍了详解xamarin Android 实现ListView万能适配器的相关资料,这里主要实现listview 适配器的实例,需要的朋友可以参考下
详解xamarin Android 实现ListView万能适配器
早些时候接触xamarin Android 的列表,写了很多ListView的Adapter,建一个ListView就写一个Adapter,每一个Adapter里面还有去写一个ViewHolder的类来优化,自从看了hongyang博客的listview万能适配器的文章,学习良多,所以就写篇关于xamarin android ListView通用适配器的文章。
本章主要分为以下三点:
- 打造通用的ViewHolder优化ListView性能
- 使用泛型Adapter适应不同布局的ListView
- C#委托和Java匿名内部类的比较
打造通用的ViewHolder优化ListView性能
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 |
|
稍微解释一下:
ViewHolder的构造方法中初始化变量,并将ListView的布局view的Tag设置成viewholder的实例
Get方法使用单例模式初始化ViewHolder
GetView泛型方法获取ListView布局中的空间
SetText、SetImageBitMap给一些常用的控件复值
使用泛型Adapter适应不同布局的ListView
CommonAdapter是一个泛型的基类,一些重复的重写方法都在这个基类,然后我们写一个子类继承这个CommonAdapter,就简化了很多代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
|
写一个newsAdapter继承CommonAdapter,只需要将赋值的代码写在重写方法convert里面极客,这样就简化了很多的代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
|
C#委托和Java匿名内部类的比较
看来上面的例子,虽然简化了很多代码,但是每个ListView还是得新建一个Adapter,看来hongyang大神的博客在java中用匿名内部类实现一个Adapter万能通用,但是c#中没有匿名内部内的概念,这就尴尬了。。。。。
c#中虽然没有这种概念,但语言是相通的,但是委托可以实现。万能通用的adapter代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
|
在使用时,只需要在Activity中注册OnGetView 事件,这样多个ListView的Adapter就只需要一个通用的Adapter就行了
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
|
以上就是Android listview 万能适配器的实例,如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
您可能感兴趣的文章:
- Android ListView和Adapter数据适配器的简单介绍
- Android ListView适配器(Adapter)优化方法详解
- Android ListView万能适配器实例代码
- Android巧用XListView实现万能下拉刷新控件
- android使用flutter的ListView实现滚动列表的示例代码
- Android自定义控件ListView下拉刷新的代码
- MVPXlistView展示上拉下拉效果
- Android通过代码控制ListView上下滚动的方法
- Android解决ScrollView下嵌套ListView和GridView中内容显示不全的问题
- ListView通用泛型适配器
原文链接:http://blog.csdn.net/kebi007/article/details/77101947
