无法使用parseInt将EditText转换为int

时间:2013-07-25 06:06:17

标签: android parsing

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

附件是代码:

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

4 个答案:

答案 0 :(得分:0)

也许您可以尝试直接通过

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

我总是这样做而且有效。在 float 变量中,确保小数标记为“。”不是“,”。

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

答案 1 :(得分:0)

为了避免这种情况,请使用这两个功能。

对于Int

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

浮动

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

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

答案 2 :(得分:0)

尝试使用parseInt方法而不是valueOf,并将解析代码保留在try{}...catch{}的{​​{1}}块中。

NumberFormateException

答案 3 :(得分:0)

<强> INT

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

<强> FLOAT

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