继承BaseAdapter覆写getView()方法解析
2014-12-09 00:00
357 查看
当我们继承BaseAdapter自定义适合自己使用的Adapter时候,不可避免的要覆写getView()方法。自己在分析蓝牙4.0官方源代码遇到这个问题,分析了几遍,有所领悟,参考了这篇博文http://blog.csdn.net/pkxiuluo01/article/details/7380974,现结合蓝牙4.0官方的这部分代码将getView()解析一下。
//当界面每显示出来一个item时,就会调用该方法,getView()有三个参数,第一个参数表示该item在Adapter中的位置;第二个参数是item的View对象,是滑动list时将要显示在界面上的item,如果有item在显示界面消失,这时android会将消失的item返回,称为旧view,也就是说此时的view不为null;第三个参数用在加载xml视图。 public View getView(int i, View view, ViewGroup viewGroup) { ViewHolder viewHolder; // General ListView optimization code. if (view == null) {//当滑动list时,如果没有item消失,这时参数对象view是没有任何指向的,为null view = mInflator.inflate(R.layout.listitem_device, null);//mInflator是LayoutInflater类(布局加载器)实例对象,该行是动态加载布局 viewHolder = new ViewHolder();//获得实例对象 viewHolder.deviceAddress = (TextView) view.findViewById(R.id.device_address);//分别实例化显示Name和Address的textView控件 viewHolder.deviceName = (TextView) view.findViewById(R.id.device_name); view.setTag(viewHolder);//向view中添加附加数据信息,在这里也就是两个textView对象 } else { viewHolder = (ViewHolder) view.getTag();//如果有旧的view对象返回(该情况是滑动list时有item消失),从该view中提取创建的两个已经创建的textView对象,达到对象循环使用 } BluetoothDevice device = mLeDevices.get(i);//从搜索到的设备列表中得到显示位置设备对象。 final String deviceName = device.getName(); if (deviceName != null && deviceName.length() > 0) viewHolder.deviceName.setText(deviceName);//输出显示设备SSID else viewHolder.deviceName.setText(R.string.unknown_device); viewHolder.deviceAddress.setText(device.getAddress());//输出显示设备地址信息 return view; } ..... static class ViewHolder { //该类用来暂存textView的实例化对象,达到循环使用 TextView deviceName; TextView deviceAddress; } .....
相关文章推荐
- android listview继承BaseAdapter,自定义的适配器,getView方法执行多组循环解决方式
- android-继承BaseAdapter--自己定义适配器,getView运行多次的解决方法
- android-继承BaseAdapter--自定义适配器,getView执行多次的解决方法
- 【转】 android-继承BaseAdapter--自定义适配器,getView执行多次的解决方法
- android-继承BaseAdapter--自定义适配器,getView执行多次的解决方法
- android ListView使用的三种方法汇总(通过继承BaseAdapter,使用SimpleAdapter和SimpleCursorAdapter)
- 继承baseadapter需要重写的方法
- BaseAdapter getView方法
- ListView中getChildAt()方法以及BaseAdapter中getview使用
- 【android学习笔记】自定义Adapter继承BaseAdapter获取不到getview或者getview不执行的问题
- BaseAdapter的getView方法中对setOnclickListener优化
- 关于BaseAdapter的getView方法提示错误
- Android中的自定义Adapter(继承自BaseAdapter)——与系统Adapter的调用方法一致——含ViewHolder显示效率的优化
- Android中的自定义Adapter(继承自BaseAdapter)——与系统Adapter的调用方法一致——含ViewHolder显示效率的优化
- Android studio继承BaseAdapter时不自动出现getCount等方法
- ListActivit运用BaseAdapter的例子,关键是getView方法怎么写。
- android: BaseAdapter的getview方法会多次重复调用
- 【android学习笔记】自定义Adapter继承BaseAdapter获取不到getview或者getview不执行的问题
- Android中的自定义Adapter(继承自BaseAdapter)——与系统Adapter的调用方法一致——含ViewHolder显示效率的优化(转)
- Why:继承BaseAdapter时要重载的方法及各方法作用