将Object内的字符串转换为int

时间:2013-05-27 10:37:44

标签: java android

我有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新手,感谢您的帮助:)。

5 个答案:

答案 0 :(得分:4)

如果我没有误解你

int id = Integer.parseInt((String)viewID);

答案 1 :(得分:4)

首先转换为字符串然后转换为

int id =Integer.parseInt( viewID .toString() );

答案 2 :(得分:1)

使用Integer.parseInt方法

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

如果标签不包含数字

,则此代码不会崩溃

答案 3 :(得分: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
        }
    }
}

答案 4 :(得分:0)

简单使用:

int i = (Integer) viewID ;

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

int i = (int) viewID ;