将变量从Java类传递给另一个用于Android的变量

时间:2011-11-20 13:17:24

标签: java android

Screen2.java文件包含以下代码:

public class screen2 extends Activity {

    public int globalZip=0;
        //Some validations & update globalZip
        //Code control goes to Screen3,java

}

Screen3.java文件包含以下代码:

public class Screen3 extends Activity
{
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.screen3);
        screen2 objs2= new screen2();
        int myzip = objs2.globalZip;

        Toast.makeText(getBaseContext(), "Screen3 "+myzip, 5).show();

        System.out.println("WTHDude"+"Screen3 "+myzip);

    }

现在我遇到的问题是,如果我在Screen2.java文件中更新了globalZip的值为90034,则不会在screen3中更新。任何人都可以帮我解决这个错误。谢谢。

2 个答案:

答案 0 :(得分:5)

嗯,你正在创建一个新的Screen2实例,所以你当然会返回globalZip的初始值,因为它不是一个静态类成员。

这么说,你可能并不想让它成为一个静态成员。

但更重要的是,你完全错了。如果你想将数据从一个Activity传递到另一个你需要的Activity,对于像Strings / booleans / int这样的简单数据,将它添加到启动Screen3的Intent。

这样的事情:

// inside Screen2.java
Intent intent = new Intent(this, Screen3.class);
intent.putExtra("screen2.globalzip", globalZip);

然后在Screen3.java中获取值:

Bundle extras = getIntent().getExtras();
int globalZip = extras.getInt("screen2.globalzip");

答案 1 :(得分:1)

使用Intent在活动之间传递数据。 Here is and example.