Android控件开发之四----ListView(4)
下面介绍下baseAdapter这个迭代器的基类,可以任由自己发挥,实现自己的迭代器。。。。
继承图如下:
public abstract class BaseAdapter extends Object implements ListAdapter SpinnerAdapter java.lang.Object ↳ android.widget.BaseAdapter Known Direct Subclasses ArrayAdapter<T>, CursorAdapter, SimpleAdapter Known Indirect Subclasses ResourceCursorAdapter, SimpleCursorAdapter官网上对她的解释:
Common base class of common implementation for an Adapter that can be used in both ListView (by implementing the specialized ListAdapter interface} and Spinner (by implementing the specialized SpinnerAdapter interface.(实现adapter基类被用于listview和spinner)
实现这个抽象类必须实现四个接口:
public int getCount()
public View getView(int position, View convertView, ViewGroup parent) //这个最重要,显示Item中的View,只要更新了ui,这个接口一定会被调用
public long getItemId(int position)public Object getItem(int position)
下面直接上代码,介绍一些BaseAdapter的技巧
TextImageAdapter.java
注1:
注2:
注4:
这里说下几个技巧,提高效率
由于listitem的UI一更新就会调用getview,而在listview中有一些数据已经有了,无需增加,只要重新利用就可以了
所以增加了判断,
if (convertView == null)
这样就会过滤掉那些已经有的view;
注6:
convertView.setTag(cache); cache = (ItemViewCache) convertView.getTag(); 这里getTag,setTag类似于控件的Id,分辨各个view用的,这样才能实现过滤;
注5:
convertView = LayoutInflater.from(mContext).inflate(
R.layout.list_item, null);先生成LayoutInflater(作用:把xml的布局转换成view对象,详细的后文会叙说)的一个对象,
LayoutInflater.from(mContext)接着就是布局自己的文件,生成view
list_item.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="#FFFFFF">
<TextView
android:id="@+id/text"
android:layout_alignParentLeft="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<ImageView
android:id="@+id/image"
android:layout_alignParentRight="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</RelativeLayout>
下一篇: Git 基础 - 打标签 tag
推荐阅读
-
Android开发之ListView实现Item局部刷新
-
Android开发之基于RecycleView实现的头部悬浮控件
-
android开发之方形圆角listview代码分享
-
Android开发之ListView列表刷新和加载更多实现方法
-
Android开发之拖动条/滑动条控件、星级评分控件功能的实例代码
-
Android开发之ListView功能扩展,实现高性能的瀑布流布局讲解
-
Android开发学习之控件GridView的使用讲解
-
Android控件之ListView用法实例详解
-
Android开发笔记之 RecyclerView和ScrollView嵌套使用,ListView和ScrollView嵌套使用对比
-
Android开发自定义控件之折线图实现方法详解