【问题标题】:Convert string inside an Object to int将 Object 中的字符串转换为 int
【发布时间】:2013-05-27 19:37:28
【问题描述】:

我有 android/java 转换问题。

我使用 onClick 来点击我的 imageView 并捕获它们的标签(例如,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 新手,感谢您的帮助 :)

【问题讨论】:

    标签: java android


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

      如果我没有误解你

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

      【讨论】:

        【解决方案3】:

        使用Integer.parseInt方法

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

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

        【讨论】:

          【解决方案4】:

          你可以试试这个:

          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
                  }
              }
          }
          

          【讨论】:

            【解决方案5】:

            简单使用:

            int i = (Integer) viewID ;
            

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

            int i = (int) viewID ;
            

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2011-10-02
              • 2011-03-06
              • 1970-01-01
              • 2018-07-05
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多