gpt4 book ai didi

Android:View类中getTag()和setTag()的用途

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:29:02 25 4
gpt4 key购买 nike

public void setTag(final Object tag) {
mTag = tag;
}
public Object getTag() {
return mTag;
}

这是Android中View类的两个方法。下面分别是这两种方法的官方文档。

 /**
* Returns this view's tag.
*
* @return the Object stored in this view as a tag
*
* @see #setTag(Object)
* @see #getTag(int)


*/
/**
* 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)
*/

标签函数在 baseadapter 实现中被广泛使用,但我无法理解它的用途以及如何使用它们。你能解释一下这个一些很好的例子来帮助我理解这些功能的作用吗

最佳答案

把它想得尽可能简单——一个“标签”。

杂货店的产品标签告诉您什么?基本上很多东西,比如名称、价格、原产国、折扣等等。

假设您正在制作一个使用 ImageView 在网格中显示此类产品的应用程序。如何从ImageView轻松判断产品特征?标记它是可能的解决方案之一。

class Product {

String mName;
String mManufacturer;
String mOriginCountry;

double mPrice;
int mDiscount;

int mImageId; // A reference to a drawable item id
}

[...]

class My Activity {

@Override
protected void onCreate() {
[...] // Some code

// Grab the imageView reference and grab (or create) the tag for it
ImageView someItemView = (ImageView) findViewById(R.id.some_product_view);
Product someProductTag = new Product( ... some data ...);

// Add the tag to the ImageView
someItemView.addTag(someProductTag);
}

private void displayItemInfo(ImageView iv) {

// Grab the tag and display the info.
String productName = ((Product)iv.getTag()).mName();
Toast.show(mContext, "This is " + productName, Toast.LONG).show();

}

}

当然,这是非常简化的。理想情况下,您会有一个适配器,它可以根据您提供的标签创建 View ,或者自动创建您的标签。

希望你能理解

关于Android:View类中getTag()和setTag()的用途,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25531253/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com