`

view.setTag

阅读更多

无意中注意到了view.setTagObject tag)方法.

Tag在View中是很有作用的属性,API中这样描述的:

Unlike IDs, tags are not used to identify views. Tags are essentially an extra piece of information that can be associated with a view. They are most often used as a convenience to store data related to views in the views themselves rather than by putting them in a separate structure.

 

Tag不像ID是用标示view的。Tag从本质上来讲是就是相关联的view的额外的信息。它们经常用来存储一些view的数据,这样做非常方便而不用存入另外的单独结构。

 

其实,我们在优化listview的getView()方法中就用到了setTag()和getTag()。

摘取代码段如下:

ViewHolder viewHolder;
			if (convertView == null) {
				convertView = LayoutInflater.from(SongsActivity.this).inflate(
						R.layout.music_item, null);
				ImageView pImageView = (ImageView) convertView
						.findViewById(R.id.albumPhoto);
				viewHolder = new ViewHolder(pImageView, pTitle, pDuration,
						pArtist);
				convertView.setTag(viewHolder);
			} else {
				viewHolder = (ViewHolder) convertView.getTag();
			}

 setTag还有带2个参数的形式,setTag(key, tag),暂时不做讨论。

 

分享到:
评论

相关推荐

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

    在Android开发中,`setTag()` 是一个非常实用的方法,它允许开发者在 `View` 对象中存储自定义的数据,这对于优化性能和传递参数有着重要的作用。本文将深入探讨 `setTag()` 的使用方法,以及如何解决 "The key must...

    android中使用tag的例子2

    首先,`Tag`的基本用法是在创建或者获取View时通过`setTag()`和`getTag()`方法进行设置和读取。例如,你可能在一个ListView中,为每个列表项设置一个唯一的`Tag`,这样在点击事件处理中,可以通过`getTag()`快速获取...

    Android 同时setTag两次保存多种值的示例代码

    setTag是android的view类中很有用的一个方法,可以用它来给空间附加一些信息,在很多场合下都得到妙用。 示例代码: view.setTag(R.string.action_settings,hodler.content); 接收两个值,一个是key值,必须是唯一...

    Android ListView 点击单选State

    接下来,我们可以在Adapter中利用View的`setTag()`和`getTag()`方法来存储和检索每个条目的选中状态。`setTag()`可以将任何对象绑定到View,而`getTag()`则用来获取之前设置的对象。例如,我们可以在`getView()`方法...

    android setTag()和getTag()的使用

    view.setTag(object); ``` 而 `getTag()` 方法则用于获取之前设置的Tag对象。如果Tag未被设置,它将返回null。这使得我们可以在需要的时候方便地取出之前存储的数据。其基本语法如下: ```java Object tag = view....

    listview中的单选按钮多选按钮

    view.setTag(viewHolder); } else { viewHolder = (ViewHolder) view.getTag(); } viewHolder.radioButton.setId(position); viewHolder.radioButton.setOnCheckedChangeListener(null); // 防止重复点击事件...

    wzy17419.rar

    view.setTag(viewHolder); } else { view = convertView; viewHolder = (ViewHolder) view.getTag(); } viewHolder.title = (TextView) view.findViewById(R.id.tv_title); viewHolder.time = ...

    listview 里面加radiobutton 单选操作

    view.setTag(viewHolder); } else { viewHolder = (ViewHolder) view.getTag(); } viewHolder.radioButton.setText(dataList.get(position)); viewHolder.radioButton.setOnCheckedChangeListener(null); // ...

    listview+checkbox乱序问题解决demo

    buttonView.setTag(position); ``` 通过以上步骤,你可以确保ListView中的Checkbox状态在滚动时能够正确地保存和恢复,从而解决乱序问题。在实际开发中,还可以考虑使用RecyclerView替代ListView,因为它提供了更...

    android为ListView每个Item上面的按钮添加事件

    public View getView(final int position, View convertView, ViewGroup parent) { ViewHolder holder = null; if (convertView == null) { holder = new ViewHolder(); convertView = mInflater.inflate(R....

    Android标签的显示

    在代码中,可以通过`View.getTag()`和`View.setTag()`方法来获取和设置标签。例如: ```java Button myButton = findViewById(R.id.my_button); String tag = (String) myButton.getTag(); // 获取标签 ...

    Android 自定义ViewGroup 实战篇 -> 实现FlowLayout源码程序

    关于标签(Tag)的使用,Android中的`View.setTag()`和`View.getTag()`方法常用于存储与视图相关的数据,可以提高代码的可读性和复用性。在FlowLayout中,我们可能用标签来标识某子视图的特殊状态或属性。 在压缩包...

    ListView上给Button增加开关

    buttonView.setTag(position); return convertView; } static class ViewHolder { TextView textViewTitle; Switch switchButton; } } ``` 4. 在Activity中设置ListView和Adapter: 在主活动中初始化...

    Android 简单GridView使用.rar

    view.setTag(viewHolder); } else { viewHolder = (ViewHolder) view.getTag(); } viewHolder.image.setImageResource(dataList.get(position).getImageRes()); viewHolder.text.setText(dataList.get...

    ListView和EditText

    可以使用View.setTag()和View.getTag()来标识和恢复焦点,或者利用View.OnFocusChangeListener监听焦点变化,手动将焦点设置回当前可见的EditText。 其次,数据保存是另一个关键问题。由于ListView的复用机制,如果...

    Android ListView左右滑动删除Item效果

    view.setTag(viewHolder); // 设置触摸监听器 view.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { // 检测滑动手势 switch (event.get...

    antocompletetextview的模糊查询

    view.setTag(views); return view; } ``` - **作用**:创建一个新的视图,用于展示联系人的信息。 - **参数**: - `context`:上下文对象。 - `cursor`:当前数据集的Cursor对象。 - `parent`:视图将被添加到...

    android中设置tag

    1. **对于View对象**,可以使用`setTag()`方法设置Tag,传入一个Object类型的参数,如`view.setTag("myTag")`。获取Tag时,使用`getTag()`,如果Tag是自定义的对象类型,需要提供一个泛型参数,如`(String)view....

    Android仿微信、支付宝钱包宫格界面Demo

    通过`View.setTag()`和`View.getTag()`来传递和获取每个单元格的数据,以便在点击事件中根据数据执行相应的操作。 6. **动画效果**: 为了提升用户体验,可以在用户触摸宫格单元时添加一些过渡动画,如放大、淡入...

Global site tag (gtag.js) - Google Analytics