Android开发 -- setTag的妙用和The key must be an application-specific resource id 异常_Android

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

用于缓存item的view

复制代码 代码如下:

public View getView(final int position, View convertView, ViewGroup parent) { 
    ItemViewHolder holder; 

    if (convertView == null) { 
        holder = new ItemViewHolder(); 
        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); 
           } 
     
    return convertView; 
}

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

setTag还有一个带int类型的重载,但是设置final类型的常量或者写死数字都会出现:

The key must be an application-specific resource id 异常

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

时间: 2024-07-30 22:15:18

Android开发 -- setTag的妙用和The key must be an application-specific resource id 异常_Android的相关文章

Android开发学习笔记之通过API接口将LaTex数学函数表达式转化为图片形式_Android

本文将讲解如何通过codecogs.com和Google.com提供的API接口来将LaTeX数学函数表达式转化为图片形式.具体思路如下:       (1)通过EditText获取用户输入的LaTeX数学表达式,然后对表达式格式化使之便于网络传输.       (2)将格式化之后的字符串,通过Http请求发送至codecogs.com或者Google.com.       (3)获取网站返回的数据流,将其转化为图片,并显示在ImageView上. 具体过程为: 1.获取并格式化LaTeX数学表

Android开发之多线程中实现利用自定义控件绘制小球并完成小球自动下落功能实例_Android

本文实例讲述了Android开发之多线程中实现利用自定义控件绘制小球并完成小球自动下落功能的方法.分享给大家供大家参考,具体如下: 1.布局界面 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_pare

Android开发技巧之永不关闭的Toast信息框(长时间显示而非系统关闭)_Android

Toast信息提示框之所以在显示一定时间后会自动关闭,是因为在系统中有一个Toast队列.系统会依次从队列中取(出队列)一个Toast,并显示它.在显示一段时间后,再关闭,然后再显示下一个Toast信息提示框.直到Toast队列中所有Toast都显示完为止.那么有些时候需要这个Toast信息提示框长时间显示,直到需要关闭它时通过代码来控制,而不是让系统自动来关闭Toast信息提示框.不过这个要求对于Toast本身来说有些过分,因为Toast类并没有提供这个功能.虽然如此,但方法总比问题多.通过一

Android开发5:应用程序窗口小部件App Widgets的实现(附demo)_Android

前言 本次主要是实现一个Android应用,实现静态广播.动态广播两种改变 widget内容的方法,即在上篇博文中实验的基础上进行修改,所以此次实验的重点是AppWidget小部件的实现啦~ 首先,我们简单说一下Widget是一个啥玩意~ 应用程序窗口小部件(Widget)是微小的应用程序视图,可以被嵌入到其它应用程序中(比如桌面)并接收周期性的更新.你可以通过一个App Widget provider来发布一个Widget.可以容纳其它App Widget的应用程序组件被称为App Widge

适用于iOS开发者的Android开发技巧

  我曾经从事过五年的iOS应用开发工作,那段时间我一直在尽量避免同Android打交道--不过现在情况不同了.不管大家是否相信,Android开发其实乐趣满满.而且与iOS开发相比也不像大家想象的那样差异巨大. 我在Android平台上开发出这款"七分钟锻炼"应用,并借此学到了很多宝贵的知识.我希望这篇文章分享的一些小技巧也能帮助大家解决实际问题.请注意,我接下来进行比较的内容并不一定完全匹配,而且本文的重点也不在于完整地叙述Android开发;当然,我一定会提到自己在开发这款简单应

搜罗Android开发eclipse错误汇总

大家都在为项目开发成功而喜悦,但可不知成功的路上是会经常出错的,下面是我碰到的一些错误集合! [错误信息] [2011-01-19 16:39:10 - ApiDemos] WARNING: Application does not specify an API level requirement! [2011-01-19 16:39:10 - ApiDemos] Device API version is 8 (Android 2.2)原因: 不影响正常运行.在AndroidManifest.

android-请问在Android开发中如何只获得手机桌面上的App列表

问题描述 请问在Android开发中如何只获得手机桌面上的App列表 我现在能够获得手机中安装的所有App列表,但我只想获得手机桌面上的App列表,请问应该如何解决? 解决方案 第一步:建立基本数据:PakageMod.java public class PakageMod { public String pakageName;//应用的包名 public String appName;//应用的名称 public Drawable icon;//应用图标 public PakageMod()

我的Android进阶之旅------&amp;gt;Android开发错误汇总

大家都在为项目开发成功而喜悦,但可不知成功的路上是会经常出错的,下面是我碰到的一些错误集合! [错误信息] [2011-01-19 16:39:10 - ApiDemos] WARNING: Application does not specify an API level requirement! [2011-01-19 16:39:10 - ApiDemos] Device API version is 8 (Android 2.2) 原因: 不影响正常运行.在AndroidManifest

button点击事件-Android开发listView中的Button点击事件被拦截

问题描述 Android开发listView中的Button点击事件被拦截 根据http://blog.csdn.net/boylinux/article/details/8860443 这位大神的帖子,我的代码如下,现在的问题是Listview中的Button和imageview和textview控件点击之后不会响应,而在滑动一下Listview后,之前的点击事件才会响应,导致这个问题的原因不明,但是如果不用HashMap这个MAP的话,就不会有这个问题,请问大神们这是为什么呢?代码如下: p