7

我正在尝试将整数数组与我唯一制作的图像视图的标签进行比较。

使用这条线:

if(grid[i][j] == buttons[k].getTag()){

我知道我在正确的轨道上,但我不知道我是否需要投射它或使用一种方法。我知道这是一个简单的问题,但任何帮助将不胜感激,谢谢。

4

4 回答 4

24

标签是一个对象,所以放一个Integer

/*
 * UseValueOf
 * ----------
 * Priority: 4 / 10
 * Severity: Warning
 * Category: Performance
 * 
 * You should not call the constructor for wrapper classes directly, such as`new
 * Integer(42)`. Instead, call the valueOf factory method, such as
 * Integer.valueOf(42). This will typically use less memory because common
 * integers such as 0 and 1 will share a single instance.
 */
//MyView.setTag(new Integer(42));
MyView.setTag(Integer.valueOf(42));

然后像这样检索值:

int tagValue = (Integer)MyView.getTag();
于 2012-05-19T15:15:41.850 回答
12

您必须将 button[k].getTag() 转换为整数。

做这个:

if(grid[i][j] == Integer.parseInt(buttons[k].getTag().toString())){
于 2012-05-19T07:17:54.117 回答
4

我认为你的标签是一个字符串而不是一个整数。

如果是这种情况,请将您的整数转换为字符串()并检查它是否等于()。

于 2012-05-18T22:35:18.840 回答
1

您传入一个整数并获取一个索引变量。这是代码片段

int Index = Integer.parseInt(v.getTag().toString());
System.out.println(Index);
于 2016-05-14T09:48:36.627 回答