tag是view的一个属性,也可以说是view用于存放参数的一个map,对于提高性能和参数传递都有妙用,比如提高listview的性能:


用于缓存item的view

[java] view plain copy
  1. publicViewgetView(finalintposition,ViewconvertView,ViewGroupparent){
  2. ItemViewHolderholder;
  3. if(convertView==null){
  4. holder=newItemViewHolder();
  5. convertView=LayoutInflater.from(context).inflate(R.layout.view_item,null);
  6. holder.timeTextView=(TextView)convertView.findViewById(R.id.text_item_content_time);
  7. holder.remarkTextView=(TextView)convertView.findViewById(R.id.text_item_content_remark);
  8. convertView.setTag(holder);
  9. }else{
  10. holder=(ItemViewHolder)convertView.getTag();
  11. }
  12. if(mMessageListGroup.get(mMessageList.get(position).getGroupId()).isShown()){
  13. convertView.setTag(R.id.child_show,true);
  14. }else{
  15. convertView.setTag(R.id.child_show,false);
  16. }
  17. returnconvertView;
  18. }

在上面的代码中用到了tag,如果是一个好说直接setTag即可,如果有多个又怎么办呢?


setTag还有一个带int类型的重载,但是设置final类型的常量或者写死数字都会出现:The key must be an application-specific resource id 异常:


需要在ids.xml文件中定义一个ID,然后设置在这里!!


原文地址:http://blog.csdn.net/fcly2013/article/details/20554059?utm_source=tuicool

更多相关文章

  1. Android调用webservice接口
  2. Android底层开发之JNI编程
  3. 【android】AIDL传递自定义类型参数
  4. Android中Activity之间的通信和传值
  5. android 实现服务器连接获取数据和传递数据(1)
  6. 使用Tensorflow部署手机端app之将TensorFlow训练好的模型迁移到A
  7. Android(安卓)P: U盘挂载过程简述
  8. android Fragments详解七:fragement示例
  9. 修改编译Nexus5x android7.0.1(N)版本内核(AOSP)

随机推荐

  1. Android(安卓)4.2一些变动
  2. 编写高效Android代码
  3. 使用Genymotion时出现INSTALL_FAILED_CPU
  4. Fragment封装切换
  5. android自动化测试工具之DroidPilot
  6. Android面面观——Android事件处理下(按键
  7. Android(安卓)设计模式之面向对象的六大
  8. android 搜索框(一)
  9. 【翻译】Android安全之Linux内核篇
  10. android 退出按钮