ListView分类加载
来源:互联网 发布:我国对外投资数据 编辑:程序博客网 时间:2024/06/14 22:22
getView的代码
@SuppressWarnings("unchecked") @Override public View getView(int position, View convertView, ViewGroup parent) { ViewHolder viewHolder = null; final int i = position; if(finalDevice.get(position) instanceof Integer){ //判断是不是标题的类型 if(convertView==null){ viewHolder = new ViewHolder(); //如果是标题的话 convertView = View.inflate(context, R.layout.smarthouse_device_list_title, null); viewHolder.tv_smarthouse_item_title = (TextView) convertView.findViewById(R.id.tv_smarthouse_item_title); convertView.setTag(R.id.tag_first, viewHolder); }else{ viewHolder = (ViewHolder) convertView.getTag(R.id.tag_first); if (viewHolder==null || viewHolder.tv_smarthouse_item_title==null) { //因为用header分类了,所以此处有null的风险 viewHolder = null; viewHolder = new ViewHolder(); //如果是标题的话 convertView = View.inflate(context, R.layout.smarthouse_device_list_title, null); viewHolder.tv_smarthouse_item_title = (TextView) convertView.findViewById(R.id.tv_smarthouse_item_title); convertView.setTag(R.id.tag_first, viewHolder); } } //给标题设置值 viewHolder.tv_smarthouse_item_title.setText(devicesName[(Integer) finalDevice.get(position)]); LogUtil.e("SmartHouse_deviceControl_ListView_Adapter integer", "finalDevice.get(position) integer:" + finalDevice.get(position)); }else{//不是的话就说明是常规的类型 if(convertView==null){ viewHolder = new ViewHolder(); convertView = View.inflate(context, R.layout.smarthouse_device_listitem, null); viewHolder.tv_name = (TextView) convertView.findViewById(R.id.tv_smarthouse_devicecontrol_item); viewHolder.tb_state = (ToggleButton) convertView.findViewById(R.id.tb_smarthouse_devicecontrol_item); convertView.setTag(R.id.tag_second, viewHolder); }else{ viewHolder = (ViewHolder) convertView.getTag(R.id.tag_second); if(viewHolder==null || viewHolder.tv_name==null || viewHolder.tb_state==null){//因为用header分类了,所以此处有null的风险 viewHolder=null; viewHolder = new ViewHolder(); convertView = View.inflate(context, R.layout.smarthouse_device_listitem, null); viewHolder.tv_name = (TextView) convertView.findViewById(R.id.tv_smarthouse_devicecontrol_item); viewHolder.tb_state = (ToggleButton) convertView.findViewById(R.id.tb_smarthouse_devicecontrol_item); convertView.setTag(R.id.tag_second, viewHolder); } } //----------------------------------以上为listView的优化 devices.clear(); devices.addAll(finalDevice); LogUtil.e("SmartHouse_deviceControl_ListView_Adapter | device:", "finalDevice.size:" + finalDevice.size() +" | device.size: " + devices.size()); LogUtil.e("SmartHouse_deviceControl_ListView_Adapter", "devices.get(position):" + devices.get(position).getDeviceName()); //设置textview的值,然后设置它的点击事件 viewHolder.tv_name.setText(devices.get(position).getDeviceName()); viewHolder.tv_name.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { Toast.makeText(context, "您选择了" + devices.get(i).getDeviceName() + "设备", 0).show(); } }); //得到每个控件的状态值,然后显示 DeviceStatus deviceStatus = LocalDataApi.getDeviceStatus(uID, devices.get(i).getDeviceId());// if(deviceStatus!=null && (deviceStatus.getValue1()==0)){// viewHolder.tb_state.setChecked(true);// } //--------------------------------以上为listVIew每个view的使用 } return convertView; }
ViewHolder
static class ViewHolder{ TextView tv_name; ToggleButton tb_state; TextView tv_smarthouse_item_title; }
0 0
- ListView分类加载
- ListView分类加载
- ListView分类加载
- Android ListView分类加载遇到的一些问题
- listView加载
- listview的分类,仿京东分类
- Android中ListView分类
- Android中ListView分类
- Android中ListView分类
- Android ListView 分类
- 简单listview分类
- Android:ListView分类显示
- Android:ListView分类
- ListView分类显示
- Android的分类ListView
- MarkDown 分类加载失败
- ListView分页加载,加载更多
- ListView分类显示的原理
- Java线程篇(八):锁对象Lock-同步问题完美解决
- 惊群效应测试
- duplicate 'unsigned'
- Ebay开源基于大数据的可视化框架:Pulsar Reporting
- iOS限制此应用不可在越狱机上使用
- ListView分类加载
- MyBatis Mapper 接口如何通过JDK动态代理来包装SqlSession 源码分析
- SQL存储过程(Stored Procedure)
- [快速配置]智能DNS+Web界面管理Bind+Mysql+NamedManager
- 关于HIPAA
- Loadrunner模拟JSON接口请求进行测试
- iOS UIView视图抖动效果
- 关于字符串的处理
- MySQL数据库:case when then else end