android中View 的 setTag()和getTag()方法,它们是用来干什么的?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了android中View 的 setTag()和getTag()方法,它们是用来干什么的?相关的知识,希望对你有一定的参考价值。

如题!希望能按照您自己的理解来描述,不要copy网上的!谢谢!!!!!!

setTag()是给View控件添加一个格外的数据,通俗的讲,就是给控件添加一个标签,当你想用这个控件的时候,可以通过getTag()来获取。打个比方,同一个品牌的衣服,可能有很多款式,厂家通过标签来区分这些不同款式的衣服。 参考技术A 设置标签和获取标签啊,一般都是你不能直接获取或者设置,可以通过这两个set和get方法来得到和设置,在以后的编程会经常用到,避免用户直接修改数据

比如你写个类,类里面有你的年龄,你不想别人修改,就写成private的,那么你想修改就可以在程序里面调用set()和get()两个方法本回答被提问者和网友采纳
参考技术B 设置标签和获取标签啊,一般都是你不能直接获取或者设置,可以通过这两个set和get方法来得到和设置,在以后的编程会经常用到,避免用户直接修改数据

比如你写个类,类里面有你的年龄,你不想别人修改,就写成private的,那么你想修改就可以在程序里面调用set()和get()两个方法
参考技术C Tag是标签的意识,这里的tag是object类型。所以通常会使用setTag()设置不同的Object子类对象,然后使用强制转换getTag()获得对象。

举例说明,listview中Adapter 有个getView方法,可以使用setTag把查找的view缓存起来方便多次重用
public View getView(int
position, View convertView, ViewGroup parent)
ViewHolder vh;
if (convertView == null)
LayoutInflater inflater =
(LayoutInflater) mWidgetsSwitchApp

.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

convertView = inflater.inflate(R.layout.app_gallery_item,
null);
vh = new ViewHolder();
vh.view1 =
(ImageView) convertView.findViewById(R.id.view1);
vh.view2 =
(ImageView) convertView.findViewById(R.id.view2);
vh.view3=
(ImageView) convertView.findViewById(R.id.view3);
vh.view4 =
(ImageView) convertView.findViewById(R.id.view4);

convertView.setTag(vh);//这里的setTag
else
vh = (ViewHolder)
convertView.getTag();//这里的getTag

......
参考技术D 可以用在多个Button添加一个监听器,每个Button都设置不同的setTag。这个监听器可以通过getTag来分辨是哪个Button被按下。

以上是关于android中View 的 setTag()和getTag()方法,它们是用来干什么的?的主要内容,如果未能解决你的问题,请参考以下文章

一场setTag引发的血案与思考

一场setTag引发的血案与思考

android 同时setTag两次,保存多种值

View的setTag和getTag使用

View的setTag和getTag方法

关于Android的setTag()方法和getTag()的一个问题