繁体   English   中英

Android-NumberFormatException-用于输入字符串

[英]Android - NumberFormatException - For input String

我正在将数据保存在我的Firebase数据库中,并且想要显示它。 这可行,但是当我说textview.setText(“ Bla” + object);时出现异常。 发生异常是因为有result1和result2变量,但是我不知道如何解决此问题。 它发生在setBias方法中。

public static class BetViewHolder extends RecyclerView.ViewHolder {
    TextView bias, foodEp, profit;
    View resultColor;
    double result1;
    double result2;
    double result;

    public BetViewHolder(View itemView) {
        super(itemView);
        bias= (TextView) itemView.findViewById(R.id.bias);
        foodEp= (TextView) itemView.findViewById(R.id.food);
        profit= (TextView) itemView.findViewById(R.id.profit);
    }

    public void setBias(String biasFoll) {
        bias.setText("Bias: " + biasFoll);
        result1 = Double.parseDouble(bias.getText().toString());
    }

    public void setFoodEp(String foodEpsa) {
        foodEp.setText(foodEpsa);
        result2 = Double.parseDouble(foodEp.getText().toString());
        result = result1 * result2;
        profit.setText(String.valueOf(result));
    }

我有2个主意:

1)Mb您应该更改result1 = Double.parseDouble(bias.getText().toString()); 结果为result1 = Double.parseDouble(biasFoll);

2)包围您的“ result1 = Double.parseDouble(bias.getText()。toString());” 使用try {} catch (NumberFormatException e) {}并将一些默认值设置为result1

您正在尝试将String转换为Double:

bias.setText("Bias: " + biasFoll);
result1 = Double.parseDouble(bias.getText().toString());

那是不可能的,这就是为什么要获取NumberFormatException的原因。

使用以下

记住您的字符串必须包含数字值

bias.setText( biasFoll);

result1 = Double.parseDouble(bias.getText().toString().trim());

您无法将字符串bias 88解析为两倍,我对您的方法进行了一些更改,然后尝试

 public void setBias(String biasFoll) {
     bias.setText("Bias: " + biasFoll);
     result1 = Double.parseDouble(biasFoll);
 }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM