博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
View的setTag和getTag使用
阅读量:6260 次
发布时间:2019-06-22

本文共 2002 字,大约阅读时间需要 6 分钟。

在listview 优化其中,会使用到setTag()以及getTag()方法

代码例如以下:

@Override			public View getView(int position, View convertView, ViewGroup parent) {				ViewHolder viewHolder;			    if(convertView==null){			    	viewHolder = new ViewHolder();			    	convertView = inflater.inflate(R.layout.item, null);			    	viewHolder.tvAge = (TextView) convertView.findViewById(R.id.tvAge);			    	viewHolder.tvName = (TextView) convertView.findViewById(R.id.tvName);			    	convertView.setTag(viewHolder);			    }else{			    	viewHolder = (ViewHolder) convertView.getTag();			    }			    viewHolder.tvAge.setText("年龄:  "+persons.get(position).age);			    viewHolder.tvName.setText("年龄:  "+persons.get(position).name);			    				return convertView;			}		}		class ViewHolder{			TextView tvAge;			TextView tvName;		}

setTag()方法是在View类中,所以全部的类都能够使用setTag()方法,我们看下View源代码中代码:

/**     * Returns this view's tag.     *     * @return the Object stored in this view as a tag     *     * @see #setTag(Object)     * @see #getTag(int)     */    @ViewDebug.ExportedProperty    public Object getTag() {        return mTag;    }    /**     * Sets the tag associated with this view. A tag can be used to mark     * a view in its hierarchy and does not have to be unique within the     * hierarchy. Tags can also be used to store data within a view without     * resorting to another data structure.     *     * @param tag an Object to tag the view with     *     * @see #getTag()     * @see #setTag(int, Object)     */    public void setTag(final Object tag) {        mTag = tag;    }    /**     * Returns the tag associated with this view and the specified key.     *     * @param key The key identifying the tag     *     * @return the Object stored in this view as a tag     *     * @see #setTag(int, Object)     * @see #getTag()     */    public Object getTag(int key) {        if (mKeyedTags != null) return mKeyedTags.get(key);        return null;    }
意思是说给view设置标签,setTag()中设置的Object类,所以getTag()方法要强转,通常是View对象携带什么參数,就能够使用setTag方法把參数传递过去就能够

转载地址:http://dtzpa.baihongyu.com/

你可能感兴趣的文章
如何有效使用Project(2)——进度计划的执行与监控
查看>>
iOS 工作遇到问题记录
查看>>
Android 中屏幕点击事件的实现
查看>>
做为一个前端工程师,是往node方面转,还是往HTML5方面转
查看>>
spark 安装配置
查看>>
图片裁剪和异步上传插件--一步到位(记录)
查看>>
在Vs2012 中使用SQL Server 2012 Express LocalDB打开Sqlserver2012数据库
查看>>
【分享】博客美化(7)推荐几个优秀的自定义博客
查看>>
人工智能和机器学习领域的一些有趣的开源项目
查看>>
python sorted排序
查看>>
python中xrange和range的异同
查看>>
PHP根据ASCII码返回具体的字符
查看>>
atitit.系统架构图 的设计 与工具 attilax总结
查看>>
URAL 1774 A - Barber of the Army of Mages 最大流
查看>>
处理器(CPU)调度问题
查看>>
leetcode - 位运算题目汇总(下)
查看>>
多少个矩形被覆盖
查看>>
22、ASP.NET MVC入门到精通——搭建项目框架
查看>>
3-7 类的友元函数的应用
查看>>
IntelliJ IDEA安装 一些配置
查看>>