java - 将整数传递给其他 Activity 会导致奇怪的行为

标签 java android

我将 3 个 intsMainActivity 传递到 main 并在单独的 Textviews 中显示它们。当我单击按钮转到下一个 Activity 时,它会在最后一个 TextView 中显示最后传递的 int 。按智能手机上的后退按钮,它将最后一个 TextView 重置为 0 并显示第二个 TextView 的正确值。然后再次按后退按钮,它将第二个 TextView 重置为 0 并显示第一个 TextView 的正确值。

MainActivity.javaOnCreate 方法内的代码:

            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/

相关文章:

java - 自动添加日志记录事件的 Java Eclipse 插件

java - 关于字符串操作的问题

java - Android 中如何将两个不同的列表合并为一个列表

eclipse 调试透视图中的 android 系统统计信息

android - 具有多个元素( ImageView )重叠的 ListView

java - 如何在 Wicket 口无效 session 时保持当前语言

java - 与 apache 网络服务器和 tomcat 服务器的粘性 session

java - 在 viewpager fragment 之间传递参数

java - 访问参数化类型的参数化类型

android - 使用 AsyncTask 刷新游戏得分 TextView