我将 3 个 ints
从 MainActivity
传递到 main
并在单独的 Textviews
中显示它们。当我单击按钮转到下一个 Activity 时,它会在最后一个 TextView 中显示最后传递的 int
。按智能手机上的后退按钮,它将最后一个 TextView 重置为 0 并显示第二个 TextView 的正确值。然后再次按后退按钮,它将第二个 TextView 重置为 0 并显示第一个 TextView 的正确值。
MainActivity.java
的 OnCreate
方法内的代码:
Intent sendX = new Intent(MainActivity.this, main.class);
sendX.putExtra("x", x);
startActivity(sendX);
Intent sendY = new Intent(MainActivity.this, main.class);
sendY.putExtra("y", y);
startActivity(sendY);
Intent sendZ = new Intent(MainActivity.this, main.class);
sendZ.putExtra("z", z);
startActivity(sendZ);
main.class的OnCreate
方法内的代码:
Intent getX = getIntent();
x = getX.getIntExtra("x", 0);
Intent getY = getIntent();
y = getY.getIntExtra("y", 0);
Intent getZ = getIntent();
z = getZ.getIntExtra("z", 0);
TextView test1 = (TextView)findViewById(R.id.testx);
test1.setText(Integer.toString(x));
TextView test2 = (TextView)findViewById(R.id.testy);
test2.setText(Integer.toString(y));
TextView test3 = (TextView)findViewById(R.id.testz);
test3.setText(Integer.toString(z));
最佳答案
您需要更多地了解 Intent 的工作原理。您基本上启动了同一个 Activity 的 3 个实例。改为这样做:
Intent intent = new Intent(MainActivity.this, main.class);
intent.putExtra("x", x);
intent.putExtra("y", y);
intent.putExtra("z", z);
startActivity(intent);
和
Intent intent = getIntent();
x = intent.getIntExtra("x", 0);
y = intent.getIntExtra("y", 0);
x = intent.getIntExtra("z", 0);
关于java - 将整数传递给其他 Activity 会导致奇怪的行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23415172/