Java Android:我需要帮助将一个双值从一个视图传递到另一个视图

Java Android:我需要帮助将一个双值从一个视图传递到另一个视图,java,android,android-intent,Java,Android,Android Intent,我正在尝试创建一个餐厅菜单应用程序,允许您选择不同的食物和饮料量,当您单击按钮“总计”时,它将转到第二个视图显示:“您的总计为:\ \ \ \ \ \”。但是我犯了很多错误。如果有人能帮我,我会很感激的。我对这个很陌生,所以我从这个网站上其他问题的答案中拼凑了一些代码。谢谢大家! 主要活动视图: package name.restaurantmenu2; import android.content.Intent; import android.support.v7.app.AppCo

我正在尝试创建一个餐厅菜单应用程序,允许您选择不同的食物和饮料量,当您单击按钮“总计”时,它将转到第二个视图显示:“您的总计为:\ \ \ \ \ \”。但是我犯了很多错误。如果有人能帮我,我会很感激的。我对这个很陌生,所以我从这个网站上其他问题的答案中拼凑了一些代码。谢谢大家!

主要活动视图:

    package name.restaurantmenu2;

import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.Spinner;
import android.widget.TextView;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {

double totalPrice = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    CheckBox pizzaCB  = (CheckBox)findViewById(R.id.cb_pizza);

    if(pizzaCB.isChecked()){
        pizzaCB.toggle();
    }

    CheckBox burgerCB  = (CheckBox)findViewById(R.id.cb_hamburger);

    if(burgerCB.isChecked()){
        burgerCB.toggle();
    }

    CheckBox hotdogCB  = (CheckBox)findViewById(R.id.cb_hotdog);

    if(hotdogCB.isChecked()){
        hotdogCB.toggle();
    }

    CheckBox sodaCB  = (CheckBox)findViewById(R.id.cb_soda);

    if(sodaCB.isChecked()){
        sodaCB.toggle();
    }
}

public void addSelected(View view){


    String multiple;

    CheckBox pizzaCB = (CheckBox)findViewById(R.id.cb_pizza);
    CheckBox burgerCB = (CheckBox)findViewById(R.id.cb_hamburger);
    CheckBox hotdogCB = (CheckBox)findViewById(R.id.cb_hotdog);
    CheckBox sodaCB = (CheckBox)findViewById(R.id.cb_soda);
    TextView pizzaTV = (TextView)findViewById(R.id.tv_pizzaPrice);
    TextView burgerTV = (TextView)findViewById(R.id.tv_hamburgerPrice);
    TextView hotdogTV = (TextView)findViewById(R.id.tv_hotdogPrice);
    TextView sodaTV = (TextView)findViewById(R.id.tv_sodaPrice);
    Spinner pizzaQty = (Spinner)findViewById(R.id.spinner_pizzaQuantity);
    Spinner burgerQty = (Spinner)findViewById(R.id.spinner_hamburgerQuantity);
    Spinner hotdogQty = (Spinner)findViewById(R.id.spinner_hotdogQuantity);
    Spinner sodaQty = (Spinner)findViewById(R.id.spinner_drinks);


    if(pizzaCB.isChecked()) {
        String value = pizzaTV.getText().toString();
        value = value.replace('$', ' ');
        multiple = String.valueOf(Double.parseDouble(pizzaQty.getSelectedItem().toString()) * Double.parseDouble(value));
        totalPrice++;
    }
    if(burgerCB.isChecked()) {
        String value = burgerTV.getText().toString();
        value = value.replace('$', ' ');
        multiple = String.valueOf(Double.parseDouble(burgerQty.getSelectedItem().toString()) * Double.parseDouble(value));
        totalPrice++;
    }
    if(hotdogCB.isChecked()) {
        String value = hotdogTV.getText().toString();
        value = value.replace('$', ' ');
        multiple = String.valueOf(Double.parseDouble(hotdogQty.getSelectedItem().toString()) * Double.parseDouble(value));
        totalPrice++;
    }
    if(sodaCB.isChecked()) {
        String value = sodaTV.getText().toString();
        value = value.replace('$', ' ');
        multiple = String.valueOf(Double.parseDouble(sodaQty.getSelectedItem().toString()) * Double.parseDouble(value));
        totalPrice++;
    }



}
public void onTotalClick(View view){

    Intent intent = new Intent(this, ComputedActivity.class);
    Bundle b = new Bundle();
    b.putDouble(totalPrice, double);
    intent.putExtras(b);
    startActivity(intent);
}

}
视图2

package name.restaurantmenu2;

import android.annotation.TargetApi;
import android.content.Intent;
import android.icu.text.NumberFormat;
import android.os.Build;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.CheckBox;
import android.widget.TextView;

public class ComputedActivity extends AppCompatActivity {

public static final String EXTRA_MESSAGE = "Nothing to display";

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_computed2);


}

@TargetApi(Build.VERSION_CODES.N)
private void displayPrice(double number){

    Bundle b = getIntent().getExtras();
    double result = b.getDouble(totalPrice);

    TextView priceTextView = (TextView)findViewById(R.id.tv_totalPrice);
    priceTextView.setText(NumberFormat.getCurrencyInstance().format(number));

}



}

首先,您使用的
bundle.putdoull(字符串名称,双值)
方法是错误的。它应该是bundle.putDouble(“NameOfYourDouble”,actualDouble)

在活动2中:

Intent intent = getIntent();
double myDouble = intent.getDoubleExtra("MyDouble", 0);

分析双精度转换字符串时,在用“”替换$时,使用字符串中的空白进行分析时,addSelected()中可能会发生异常。尝试处理异常

第一个错误是什么?错误是什么?请把原木贴在猫身上
Intent intent = getIntent();
double myDouble = intent.getDoubleExtra("MyDouble", 0);