使用getIntent()时int和string之间的冲突

时间:2015-02-16 06:18:14

标签: java android string int

if ((object.getString("MainCategoryID")).equals("3")
                        && (object.getString("SubCategoryID")).equals("5")) {
                    Log.i("ImageURL ", object.getString("ImageURL"));
                    imageUrls.add(object.getString("ImageURL"));
                    Log.i("Description ", object.getString("Description"));
                    descriptions.add(object.getString("Description"));
                    Log.i("Price ", object.getString("Price"));
                    price.add(object.getString("Price"));
                }

实际上价格是十进制值,但我把它作为字符串并将其传递给下一个活动。它原来是,

String price = getIntent().getStringExtra("price");

然后我使用该字符串值来计算小计,如下所示,

String quantity = quantityET.getText().toString();

                    double subTotal = 0;

                        subTotal += price * quantity;

但是我得到了这个错误,对于参数类型java.lang.String,java.lang.String,运算符*是未定义的。我知道为什么会出现这个错误,但我不知道如何在不使用字符串的情况下在片段之间传递和检索数据。

我需要一些帮助才能将所有字符串值转换为整数或帮助我解决这个问题。任何帮助,将不胜感激。

3 个答案:

答案 0 :(得分:2)

替换您的代码行

subTotal += price * quantity;

使用此代码

subTotal += (Double.parseDouble(price)) * (Double.parseDouble(quantity));

答案 1 :(得分:0)

在您的代码中,字符串数量必须在执行前转换为Double 对它们进行算术运算

String quantity = quantityET.getText().toString();

                double subTotal = 0;

                    subTotal += price * Double.parseDouble(quantity); 

答案 2 :(得分:0)

您需要将String值转换为double.Like

String price = getIntent().getStringExtra("price");
String quantity = quantityET.getText().toString();


double subTotal = 0;
subTotal += Double.parseDouble(price) * Double.parseDouble(quantity);

我希望这会对你有所帮助:)。