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

我有两个想法:

1) Mb 你应该把 result1 = Double.parseDouble(bias.getText().toString()); 改成 result1 = Double.parseDouble(biasFoll);?

2) 用 try {} catch (NumberFormatException e) {} 包围你的 "result1 = Double.parseDouble(bias.getText().toString());" 并将一些默认值设置为 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 解析为 double,我已对您的方法进行了一些更改,查看它并尝试

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