android:View的setTag和getTag使用
来源:互联网 发布:因酷在线教育源码 jsp 编辑:程序博客网 时间:2024/04/27 14:12
1.用于区分很多相似的View
例如:
button1.setOnClickListener(new OnClickListener ... );button2.setOnClickListener(new OnClickListener ... );
它们可能执行相似的逻辑,但你必须分别为两个Button设置两个独立的OnClick事件,
public void onClick(View v) { doAction(1); // 1 for button1, 2 for button2, etc.}
之所以这样做,因为onClick只有一个参数View。我们可以通过setTag和getTag来完成:
button1.setTag(1);button2.setTag(2);
我们可以将两个button设置同一个OnClickListener,比如:
listener = new OnClickListener() { @Override public void onClick(View v) { doAction(v.getTag()); }};
这样,就能够通过getTag区分。
2.用于ListView的复用
我们自己写自定义adapter的时候,通常会使用它,比如:
static class ViewHolder { TextView tvPost; TextView tvDate; ImageView thumb;}public View getView(int position, View convertView, ViewGroup parent) { if (convertView == null) { LayoutInflater inflater = myContext.getLayoutInflater(); convertView = inflater.inflate(R.layout.postitem, null); ViewHolder vh = new ViewHolder(); vh.tvPost = (TextView)convertView.findViewById(R.id.postTitleLabel); vh.tvDate = (TextView)convertView.findViewById(R.id.postDateLabel); vh.thumb = (ImageView)convertView.findViewById(R.id.postThumb); convertView.setTag(vh); } ....................}
3.注意:
除了上述情况以外,我们尽量不要直接使用,原因:
1.代码可读性:会给其他的程序员造成困扰
2.由于setTag和getTag设置的是一个Object对象,可能会出现类的转换异常
不过,android4.0以后,有一个更好的方法:setTag(int key, Object tag)可以通过类似<k,v>键值对的方式存取。
未经允许不得用于商业目的
欢迎加入QQ群讨论:android开发联盟: 272209595
1 0
- android:View的setTag和getTag使用
- android:View的setTag和getTag使用
- android:View的setTag和getTag使用
- android:View的setTag和getTag使用
- View的setTag和getTag使用
- View的setTag() 和 getTag()
- Android setTag和getTag()的使用
- 【转】Android setTag和getTag()的使用
- Android的setTag 和getTAG
- View的setTag()和getTag()方法的使用
- View的setTag()和getTag()方法的使用
- View的setTag和getTag方法的使用
- Android之:View的setTag()与getTag()方法使用
- Android中View类setTag()和getTag()的理解
- Android中View的setTag和getTag方法简述
- Android中View的setTag和getTag方法
- view 使用 setTag() 和getTag方法
- View的setTag和getTag方法
- ZOJ 3587 扩展KMP
- 用户任意输入10个数,把它们按从小到大排序。(冒泡排序)
- 《java系统性能调优》--3.数据库
- Java-web Filter过滤器
- TCP 拥塞控制
- android:View的setTag和getTag使用
- 反转字符串
- Coroutine原理
- 两个进程调用同一函数, 这是怎么回事?
- 2015美团网笔试面试总结(嵌入式/硬件类)(美团网校园招聘)
- ios 导航栏 点击barbutton的按钮 下拉列表
- Android设备连接Unity Profiler性能分析器
- 在windows上安装 OMNeT++4.5
- IIS安装