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