-
为什么需要写一个万能的适配器?当我们写一个ListView的时候,需要一个适配器和ViewHolder,但是在一个项目中往往需要很多ListView来展示信息。为了避免代码的重复性提供代码的使用率我们抽象出一个CommonAdapter,在每个ListView需要Adapter时继承它并完善对应的功能。这种模式值得学习和掌握查看全部
-
求源码查看全部
-
listview的item中含有button checkbox等抢占焦点的控件时,listview的点击事件无响应。 解决方案: 1. 设置checkbox的focusable="false"; 2. 设置父布局descendantFocusability="blocksDescendants"。查看全部
-
ViewHolder holder = ViewHolder.get(mContext,convertView,parent,R.layout.item_listview,position); Bean bean = mDatas.get(position); TextView title=holder.getView(R.id.id_title); title.setText(bean.getTitle());查看全部
-
11111查看全部
-
http://blog.csdn.net/lmj623565791/article/details/38902805/源代码可以去老师的博客查看全部
-
传统的Adapter写法:构造函数里需要一个Context来获取布局文件,和需要填入的数据类型。查看全部
-
这是牺牲内存啊,你map里的view怎么释放查看全部
-
链式编程:类里的方法返回值都是这个类的对象。所以在调用某方法之后还可以接着调用其它的方法。例如StringBulider.append()这种方法,其返回值任然是StringBulider对象。所以可以继续去调用其它的方法。查看全部
-
viewholder就是一个持有者的类,他里面一般没有方法,只有属性,作用就是一个临时的储存器,把你getView方法中每次返回的View存起来,可以下次再用。这样做的好处就是不必每次都到布局文件中去拿到你的View,提高了效率。findveiwbyid是比较耗时的操作。这样就优化了性能。查看全部
-
descendantFocusability="blocksDescendants"查看全部
-
adapter多个view的情况处理下就完美了查看全部
-
心力之作,赞一个查看全部
-
这是我优化的ViewHolder 使用的是单例模式 代码的健壮性比较好 public class ViewHolder { private View convertView; // 使用单例模式将构造私有 对外提供一个公共方法 private ViewHolder(View convertView){ this.convertView=convertView; } public ViewHolder getViewHolder( View convertView,ViewGroup parent,int layout ) { //没有初始换 就初始换布局 if(convertView==null){ // 将布局充气 convertView=LayoutInflater.from(parent.getContext()).inflate( layout,parent,false); // 创建本对象 ViewHolder viewHolder=new ViewHolder(convertView); // 通过convertView存储对象 convertView.setTag(viewHolder); } // 不为空 直接从里面将对象获取 ViewHolder viewHolder=(ViewHolder) convertView.getTag(); return viewHolder; } }查看全部
-
SparseArray存int-obkect键值对,比map效率要高查看全部
举报
0/150
提交
取消