使用int[]作为视图标记的Android findViewWithTag

使用int[]作为视图标记的Android findViewWithTag,android,view,tags,Android,View,Tags,我想通过将标记附加到视图来绑定一些信息。因此,当单击视图时,我可以使用其标记检索此信息。然而,当使用int数组作为标记时,我遇到了一个问题。 我通过以下示例保存两个整数: int arr=[x,y]; view.setTag(arr); parentView.addView(view);//parentView is a list/LinearLayout of such views 稍后,当我想使用 int tmp=[i, j];//i=x, j=y in values View targe

我想通过将标记附加到视图来绑定一些信息。因此,当单击视图时,我可以使用其标记检索此信息。然而,当使用int数组作为标记时,我遇到了一个问题。 我通过以下示例保存两个整数:

int arr=[x,y];
view.setTag(arr);
parentView.addView(view);//parentView is a list/LinearLayout of such views
稍后,当我想使用

int tmp=[i, j];//i=x, j=y in values
View target=parentView.findViewWithTag(tmp);
返回的
target
null
。为什么它不能返回正确的视图

编辑:


我不确定这是否是因为对象引用和比较问题。我尝试将整数
x
y
组合成一个字符串,如
“x,y”
,然后搜索视图,如
parentView.findViewWithTag(“x,y”)
,它可以找到视图。

虽然没有做验证实验,但@commonware提到了一个猜测。真正的对象应该可以解决这个问题。

如果处理数组,比较是在它们的引用之间,而不是它们的值之间(具有相同值的新对象将返回false,因为它与其他对象的引用不同)。使用自定义属性创建自定义视图如何?此外,我在
View
ViewGroup
@commonware上找不到
findViewByTag()
,我也怀疑这是因为对象引用问题。但是Android view的标签可以是一个对象(例如,自定义类),对吗?那么在这种情况下如何实现findViewWithTag(object)呢?啊,我明白了。我已经5年没用过了,忘了他们用“with”切换“by”。然而,我不知道你的标签是什么。我建议您使用实际对象,而不是基本体数组作为标记。“它可以找到视图”——因此这就证明了这一点。