gpt4 book ai didi

android - View 的 setTag() getTag() 方法的主要目的是什么?

转载 作者:IT老高 更新时间:2023-10-28 12:49:18 28 4
gpt4 key购买 nike

View类型对象的setTag()getTag()等方法的主要用途是什么?

我是否认为我可以将任意数量的对象与单个 View 相关联?

最佳答案

假设您生成了一堆相似的 View 。您可以为每个 View 单独设置一个 OnClickListener:

button1.setOnClickListener(new OnClickListener ... );
button2.setOnClickListener(new OnClickListener ... );
...

然后您必须为每个 View 创建一个唯一的 onClick 方法,即使它们执行类似的操作,例如:

public void onClick(View v) {
doAction(1); // 1 for button1, 2 for button2, etc.
}

这是因为onClick只有一个参数,一个View,它必须从封闭范围内的实例变量或最终局部变量中获取其他信息。我们真正想要的是从 View 本身获取信息。

输入getTag/setTag:

button1.setTag(1);
button2.setTag(2);

现在我们可以为每个按钮使用相同的 OnClickListener:

listener = new OnClickListener() {
@Override
public void onClick(View v) {
doAction(v.getTag());
}
};

这基本上是 View 拥有内存的一种方式。

关于android - View 的 setTag() getTag() 方法的主要目的是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5291726/

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