1

我有 android/java 转换问题。

我使用 onClick 来点击我的 imageViews 并捕获它们的标签(例如,android:tag="2")。之后,我需要将该标签转换为 int,以便可以将其用作数字来进行一些计算。

我正在尝试以这种方式做到这一点:

public void onClick(View v) {       
        Object viewID =  v.getTag();
        int id =  ((Integer)viewID).intValue();
}

但是,问题是我没有在我的“id”变量中获得 int 值。错误说:

“java.lang.ClassCastException:java.lang.String 无法转换为 java.lang.Integer”。

你能给我一些其他的方法来将“viewID”中的标签转换为 int 并将其放在“id”中吗?

我是 android 新手,感谢您的帮助 :)

4

5 回答 5

4

如果我没有误解你

int id = Integer.parseInt((String)viewID);
于 2013-05-27T10:39:37.567 回答
4

先转换成字符串再转换成​​int

int id =Integer.parseInt( viewID .toString() );
于 2013-05-27T10:41:55.267 回答
1

使用Integer.parseInt方法

public void onClick(View v) {       
    int id = 0; // some default value 
    try {
        id = Integer.parseInt(v.getTag());
    } catch (Exception ignored) { }
}

如果标签不包含数字,此代码不会崩溃

于 2013-05-27T10:41:41.387 回答
1

你可以试试这个:

public void onClick(View v) {       
    Object viewID =  v.getTag();

    int id = -1;

    if(viewID != null) {
        try {
            id = new Integer(viewID.toString()).intValue();
        } catch(NumberFormatException nfe) {
            // wrong format
        }
    }
}
于 2013-05-27T10:45:05.697 回答
0

简单使用:

int i = (Integer) viewID ;

或者,从 Java 7 开始,您可以编写:

int i = (int) viewID ;
于 2013-05-27T10:40:50.917 回答