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

Conflict between int and string while use of getIntent()

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

实际上价格是十进制值,但我将其作为字符串传递给下一个 activity。它显示为

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

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

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

                    double subTotal = 0;

                        subTotal += price * quantity;

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

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

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

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

                double subTotal = 0;

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

您需要将字符串值转换为 double.Like

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


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

希望对您有所帮助:)

替换你的代码行

subTotal += price * quantity;

使用此代码

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