android setTag的妙用和The key must be an application-specific resource id 异常
16lz
2021-01-26
tag是view的一个属性,也可以说是view用于存放参数的一个map,对于提高性能和参数传递都有妙用,比如提高listview的性能:
用于缓存item的view
[java] view plain copy- publicViewgetView(finalintposition,ViewconvertView,ViewGroupparent){
- ItemViewHolderholder;
- if(convertView==null){
- holder=newItemViewHolder();
- convertView=LayoutInflater.from(context).inflate(R.layout.view_item,null);
- holder.timeTextView=(TextView)convertView.findViewById(R.id.text_item_content_time);
- holder.remarkTextView=(TextView)convertView.findViewById(R.id.text_item_content_remark);
- convertView.setTag(holder);
- }else{
- holder=(ItemViewHolder)convertView.getTag();
- }
- if(mMessageListGroup.get(mMessageList.get(position).getGroupId()).isShown()){
- convertView.setTag(R.id.child_show,true);
- }else{
- convertView.setTag(R.id.child_show,false);
- }
- returnconvertView;
- }
在上面的代码中用到了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
更多相关文章
- Android调用webservice接口
- Android底层开发之JNI编程
- 【android】AIDL传递自定义类型参数
- Android中Activity之间的通信和传值
- android 实现服务器连接获取数据和传递数据(1)
- 使用Tensorflow部署手机端app之将TensorFlow训练好的模型迁移到A
- Android(安卓)P: U盘挂载过程简述
- android Fragments详解七:fragement示例
- 修改编译Nexus5x android7.0.1(N)版本内核(AOSP)