2013-07-25 24 views
0

logcat显示Integer.Parse()函数无法将字符串转换为int或float,而我已经链接到java中的xml文件。另外,我已将输入类型的费率和数量栏设置为数字,因此用户不可能输入除int或float之外的任何其他值。 Plz的帮助。我一直试图让这段代码工作很长时间。但我找不到解决方案。无法使用parseInt将EditText转换为int

附上代码:

public int initializeVars(){ 

    int i; 
    for(i=0;i<9;i++){ 
     //items[i] is the AutoCompleteTextView array 
     item[i]=items[i].getText().toString(); 
     iquant[i]=Integer.valueOf(quant[i].getText().toString()); 
     irate[i]=Float.valueOf(rates[i].getText().toString()); 

     if(item[i]=="") 
      break; 
    } 
    return i; 
} 
} 
+0

我可以发送logcat的屏幕截图。让我知道你是否想要。不幸的是,我没有足够的声誉发布图像 – kayveesin

+1

亲切地发布你的错误的行不要把完整的代码 – KOTIOS

+0

请发布logcat。 – GrIsHu

回答

0

也许代替的valueOf,你可以尝试通过

yourInt = Integer.parseInt(yourString); 
youtFloat = Float.parseFloat(yourString); 

我总是做这种方式直接解析它和它的作品。在float变量中确保小数点标有“。”。不是“,”。

您可能还想尝试并捕获NumberFormatException以避免解析时出现问题。

0

为了避免这种情况,请使用这两个函数。

对于诠释

private int getIntFromString(String str){ 
    try{ 
     return Integer.parseInt(str); 
    }catch(Exception e){ 
     return 0; 
    } 
} 

对于float

private float getFloatFromString(String str){ 
     try{ 
      return Float.parseFloat(str); 
     }catch(Exception e){ 
      return 0f; 
     } 
} 

调用这些方法在需要的地方

0

尝试使用,而不是valueOfparseInt方法,并保持该解析代码try{}...catch{}NumberFormateException

try{ 
    iquant[i]=Integer.parseInt(quant[i].getText().toString()); 
    irate[i]=Float.parseFloat(rates[i].getText().toString()); 
    } 
    catch(NumberFormateException e){} 
+0

我也尝试过这种方法,但它不起作用。顺便说一句,我无法找到ValueOf()methoid和ParseInt()mehtod之间的区别。 – kayveesin

0

INT

try { 
    myInt = Integer.parseInt(myString); 
} catch(NumberFormatException e) { 
} 

FLOAT

try { 
    myFloat = Float.parseFloat(myString); 
} catch(NumberFormatException e) { 
}