-
ListView的显示与缓存机制 需要才显示,显示完就被回收到缓存。查看全部
-
数据适配器--BaseAdapter查看全部
-
貌似这个viewholder的名字不是自己乱命的,要用的时候可以查查查看全部
-
getView的文艺式: getView函数中有两个耗时的地方,其一是生成整个view的操作,在普通式之中,通过使用第二个参数利用了缓存池中的view,从而加快了速度。 另一个耗时是定义item对应的view中的几个子控件所要进行的findviewbyid函数的使用,这里程序用一个小类封装了item中的几个子控件所对应的变量,并用settag函数在第一次运行的时候将其保存在view中,那么在后续使用的时候如果view已经建立,就可以进一步节省时间查看全部
-
适配器普通式: 其传进来的第二个参数得到了使用,第二个参数是convertview,如果这个view没有被初始化过(不在缓冲池当中),那么就如同前面的逗逼式的使用一样,用inflator新建立一个,因为新建立一个非常耗时,所以当缓冲池当中有了这个view之后,就可以直接返回了查看全部
-
最后在主程序中的使用: 这个listview也需要初始化并设置控制变量,然后设置一个适配器,适配器用前面几节定义并重写了函数的子Adapter类,同时给子类的构造函数传入参数,第一个参数this表明item的子控件子界面都在这个主界面上产生,第二个参数即是adapter返回给listview的数据从何而来(主程序前面for循环定义)。 这样就建立起了桥梁。 补充一点,这样是逗逼式,因为最后的getview函数的实现上面没有使用安卓系统提供的缓存机制,是一种浪费查看全部
-
最主要的getView方法,此方法并非程序调用,是系统自动调用,即系统需要生成一个新的item的时候使用的。 首先定义一个子view,使用inflater对象的inflat函数将一个xml文件转成view对象(第二个参数一般为null) 然后如主程序中的一样,定义各个子控件的控制变量,只不过是view的子控件 最后子控件的控制变量用构造函数传进来的数据源(封装了item的几个部件所需参数的类的list)来更新界面,就如主程序中的mTextView.setText()一样。 position是函数传进来的参数,用来表示位置(第几个item),安卓自动调用,只需使用即可查看全部
-
自定义的Adapter文件的初始化,需要用inflator,这里在构造函数里面将inflator定义为在主view里面使用的,一般的context对象使用this即可查看全部
-
然后就是实现自己定义的适配器,baseAdapter是一个抽象基类,前面的几个方法都没有实现,同时需要我们自己定义数据类型和构造函数,然后实现这4个方法查看全部
-
然后定义一个类,类中保存item的数据类型的结构,比如有一个int(图片id)两个string,定义构造方法等,然后在主函数中就可以定义一个这个类的list查看全部
-
BaseAdapter的使用,其四个函数。适配器的作用是将一定的数据显示在一些控件如listview和gridview上。每个item包含自己的xml布局文件需要自己定义查看全部
-
数据适配器查看全部
-
baseAdapter查看全部
-
baseAdapter 文艺式查看全部
-
Adapter继承自BaseAdapter 中的将XML转换为View对象: LayoutInflater mInflater; mInflater=LayoutInflatet.from(context) 在getView中通过 View view=(View)mInflater.inflate(R.layout.xxx,null)加载Item布局转换为View对象 通过View对象访问到Item布局中的控件 ImageView image=(ImageView)view.findViewById(R.id.xxx) 然后通过 image.setImageResource(mlist.getItem(position).XXXid)设置图片 数据源绑定到ListView上: listView.setAdapter(new MyAdapter(this,datalist数据源))查看全部
举报
0/150
提交
取消