-
自定义适配器查看全部
-
ViewHolder优化BaseAdapter 1.创建bean对象,用于封装数据 2.在构造方法中初始化用于映射的数据源list 3.创建ViewHolder类,创建布局映射关系 4.判断convertView,为空则创建,并设置tag,否则通过tag来取出ViewHolder 5.给ViewHolder中的控件设置数据查看全部
-
对于一些细微的程序比较效率用获取系统纳秒时间方法 关键代码: long start =System.nanoTime(); ... long end =System.nanoTime(); long dValue=end-start; viewholder 作为findviewbyid的一个转接,避免系统大量的遍历提高效率。查看全部
-
BaseAdapter文艺式 1、ViewHolder:getView()方法是利用了ViewHolder类,优化了inflate()和findViewById()的耗时操作。 (1)创建一个ViewHolder对象,通过ViewHolder对象,就将这些通过findViewById()找到的组件对象保存到了ViewHolder对应的组件对象中 (2)通过setTag()方法将这个viewHolder和当前的view建立联系查看全部
-
123查看全部
-
Adapter继承自BaseAdapter 中的将XML转换为View对象: LayoutInflater mInflater; mInflater=LayoutInflatet.from(context)查看全部
-
*创建一个ItemBean.java文件来封装ListView中的控件。 并在封装文件中写构造函数对成员变量进行初始化。 *创建数据源时,将数据源的类型直接定义为List<ItemBean>,List<ItemBean> itemBeanList=new ArrayList<>();再用循环给ListView的每一行进行赋值。查看全部
-
BaseAdapter基本结构 public int getCount();//适配器中数据集中数据的个数 public Object getItem(int position);//获取数据集中与指定索引对应的数据项 public long getItemId(int position);//获取指定行对应的ID public View getView(int position,View convertView,ViewGroup parent);//获取每一个Item显示内容查看全部
-
ListView的显示和缓存机制 总结来讲: 需要才显示,显示完就被回收到缓冲池中。 1. 屏幕上滑时,先将item1回收到View缓冲池中 2. 新要显示的item8从View缓冲池中取出,并重新设置好item8所要显示的数据 3. item8显示出来查看全部
-
1.什么是数据适配器:通过数据适配器,我们可以将数据源和UI控件联系起来。 2.数据适配器adapter的作用就是将多种多样的数据源适配成listView可以读取的模式。 (1)降低程序的耦合性 (2)容易扩展 3.最常用的数据适配器:BaseAdapter查看全部
-
baseadapter查看全部
-
BaseAdapter的文艺式 代码: public View getView(int position, View convertView, ViewGroup parent) { ViewHolder viewHolder; if (convertView==null) { viewHolder = new ViewHolder(); convertView = mInflater.inflate(R.layout.item, null); viewHolder.imageView = (ImageView) convertView.findViewById(R.id.iv_image); viewHolder.title = (TextView) convertView.findViewById(R.id.tv_title); viewHolder.content = (TextView) convertView.findViewById(R.id.tv_content); convertView.setTag(viewHolder); //通过setTag将ViewHolder与ConvertView绑定 }else { viewHolder= (ViewHolder) convertView.getTag(); } //取出 viewHolder.imageView.setImageResource(mList.get(position).ItemImageResid); viewHolder.title.setText(mList.get(position).ItemTitle); viewHolder.content.setText(mList.get(position).ItemContent); return convertView; } class ViewHolder{ private ImageView imageView; private TextView title; private TextView content; }查看全部
-
这节课很重要,很好,文艺查看全部
-
ViewHolder holder = null; if (convertView == null) { holder = new ViewHolder(); convertView = mLayoutInflater.inflate(R.layout.item, null); holder.img = (ImageView) convertView.findViewById(R.id.iv_image); holder.title = (TextView) convertView.findViewById(R.id.tv_title); holder.content = (TextView) convertView.findViewById(R.id.tv_content); convertView.setTag(holder); } else { holder = (ViewHolder) convertView.getTag(); } ItemBean bean = mDataList.get(position); holder.img.setImageResource(bean.itemImageResid); holder.title.setText(bean.itemTitle); holder.content.setText(bean.itemContent); return convertView; } // ViewHolder用于缓存控件 class ViewHolder{ public ImageView img; public TextView title; public TextView content; }查看全部
-
// 普通式 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> // 获取纳秒时间 更加精确 long start = System.nanoTime(); if (convertView == null) { // 由于我们只需要将XML转化为View,并不涉及到具体的布局,所以第二个参数通常设置为null convertView = mLayoutInflater.inflate(R.layout.item, null); } ImageView itemImage = (ImageView) convertView.findViewById(R.id.iv_image); TextView itemTitle = (TextView) convertView.findViewById(R.id.tv_title); TextView itemContent = (TextView) convertView.findViewById(R.id.tv_content); // 取出bean对象 ItemBean bean = mDataList.get(position); // 设置控件的数据 itemImage.setImageResource(bean.itemImageResid); itemTitle.setText(bean.itemTitle); itemContent.setText(bean.itemContent); long end = System.nanoTime(); long dValue = end - start; mSumTime += dValue; // 输出每次getView消耗的时间和 Log.d("xys", String.valueOf(mSumTime)); return convertView;查看全部
举报
0/150
提交
取消