Java 将变量传递给两个有意图的活动

Java 将变量传递给两个有意图的活动,java,android,Java,Android,我想将一些双值从我的主活动(我通过EditText字段获取)传递给另外两个类。每次尝试运行应用程序时,我都会收到一条错误消息(非法启动类型/预期)。有人能给我解释一下吗?有人能告诉我如何将它们从Main_活动传递到Main 2活动和achtmalacht-活动吗 以下是我的代码: 主要活动: @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstance

我想将一些双值从我的主活动(我通过EditText字段获取)传递给另外两个类。每次尝试运行应用程序时,我都会收到一条错误消息(非法启动类型/预期)。有人能给我解释一下吗?有人能告诉我如何将它们从Main_活动传递到Main 2活动和achtmalacht-活动吗

以下是我的代码:

主要活动:

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


            Button weiter = (Button) findViewById(R.id.weiter);
            weiter.setOnClickListener(new View.OnClickListener() {

                @Override
                public void onClick(View view) {

                    EditText EingabeBreite = (EditText) findViewById(R.id.breite);
                    EditText EingabeHohe = (EditText) findViewById(R.id.höhe);
                    EditText EingabeLange = (EditText) findViewById(R.id.länge);


                    double breite = Double.parseDouble(EingabeBreite.getText().toString());
                    double hohe = Double.parseDouble(EingabeHohe.getText().toString());
                    double lange = Double.parseDouble(EingabeLange.getText().toString());


                    Intent rüberin2 = new Intent(getApplicationContext(), Main2Activity.class);
                    rüberin2.putExtra("breite", breite);
                    rüberin2.putExtra("höhe", hohe);
                    rüberin2.putExtra("länge", lange);

                    startActivity(rüberin2);


                }
            });

        }}
主要活动:

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


            Button weiter = (Button) findViewById(R.id.weiter);
            weiter.setOnClickListener(new View.OnClickListener() {

                @Override
                public void onClick(View view) {

                    EditText EingabeBreite = (EditText) findViewById(R.id.breite);
                    EditText EingabeHohe = (EditText) findViewById(R.id.höhe);
                    EditText EingabeLange = (EditText) findViewById(R.id.länge);


                    double breite = Double.parseDouble(EingabeBreite.getText().toString());
                    double hohe = Double.parseDouble(EingabeHohe.getText().toString());
                    double lange = Double.parseDouble(EingabeLange.getText().toString());


                    Intent rüberin2 = new Intent(getApplicationContext(), Main2Activity.class);
                    rüberin2.putExtra("breite", breite);
                    rüberin2.putExtra("höhe", hohe);
                    rüberin2.putExtra("länge", lange);

                    startActivity(rüberin2);


                }
            });

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


        TextView frequenz4x4 = (TextView) findViewById(R.id.viermalvier);
        TextView frequenz6x6 = (TextView) findViewById(R.id.sechsmalsechs);
        TextView frequenz8x8 = (TextView) findViewById(R.id.achtmalacht);


        Bundle extras = getIntent().getExtras();
        double G4 = extras.getDouble("breite");
        double G5 = extras.getDouble("höhe");
        double G3 = extras.getDouble("länge");

        final double breite = G4;
        final double hohe = G5;
        final double lange = G3;

        double f4 = 344 / 2 / G3;
        TextView Frequenz4 = (TextView) findViewById(R.id.viermalvier);
        Frequenz4.setText(Double.toString((f4)));

        double f6 = 344 / 2 / G4;
        TextView Frequenz6 = (TextView) findViewById(R.id.sechsmalsechs);
        Frequenz6.setText(Double.toString((f6)));

        double f8 = 344 / 2 / G5;
        TextView Frequenz8 = (TextView) findViewById(R.id.achtmalacht);
        Frequenz8.setText(Double.toString((f6)));


        Button button = (Button) findViewById(R.id.button8);
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {

                Intent rüberin8 = new Intent(getApplicationContext(), Main2Activity.class);
                rüberin8.putExtra("breite", breite);
                rüberin8.putExtra("höhe", hohe);
                rüberin8.putExtra("länge", lange);

                startActivity(rüberin8);




        });
    }

在您发布的代码中,似乎在
onCreate()
方法的末尾有一个过多的“}”花括号。但由于您只提供了部分代码,这可能只是您发布问题时的复制/粘贴错误

如果不能解决这个问题,请考虑:

main2活动中
代码尝试使用以下选项:

Intent intent = getIntent();
double G4 = intent.getDoubleExtra("breite", -1.0);
double G5 = intent.getDoubleExtra("höhe", -1.0);
double G3 = intent.getDoubleExtra("länge", -1.0);
通过这种方式,您可以为比较设置默认值

您还可能在转换为
double
时遇到问题。我想问题在于你的设备设置。我从您在设置为德国环境的设备上运行的代码中获取

在使用
parseDouble

String sBreite = EingabeBreite.getText().toString();
sBreite = sBreite.replace(",",".");
Double dBreite = Double.parseDouble(sBreite);

嗨,你为什么不去上课呢?你可以储存你想要的一切。这对您来说是一个解决方案吗?如果这不是一个解决方案,那么问题可能是您在传递额外内容时不使用额外内容作为捆绑包,而是在下一个活动中尝试获取额外内容。在第一个代码段中,尝试将变量放入一个bundle中,然后将此bundle作为extra传递。您没有在第一个代码段中附加
bundle
,这就是为什么
bundle extras=getIntent().getExtras()返回一个不包含所需值的空包。