2

可能重复:
Android:如何声明全局变量?

我想从其他活动访问主要活动中的公共实例变量。我想在主要活动中调用公共方法。我怎样才能做到这一点?

class MainActivity extends Activity {
    public int i;
    public void myMethod() {}
}

class MyActivity extends Activity {
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        // How can I access variable i in MainActivity?
        // And How can I call myMethod() in MainActivity?
    }
}
4

5 回答 5

3

不建议这样做,因为您的活动类可能随时被系统回收。

使用首选项来存储变量,或者更简单:创建您自己的应用程序类。这将在整个应用程序生命周期中可用,您将能够在其中存储静态变量。

于 2012-08-30T14:30:02.597 回答
3

您可以在Intent开始新的Activity.

于 2012-08-30T14:36:18.573 回答
1

这可能会对您有所帮助: 如何在 Android 中声明全局变量?

您可以使用 Application、SharedPreferences 或静态变量的子类。

于 2012-08-30T14:32:35.310 回答
1

试试这个

class MainActivity extends Activity {
    public int i;
void startNewA()
{
 Intent i = new Intent(getApplicationContext(), MyActivity.class);
 i.putExtra("var_name", i);
 startNewActivity(i);
}
}

class MyActivity extends Activity {
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        int i = getIntent().getIntExtra("var_name", -1);
    }
}
于 2012-08-30T14:42:38.700 回答
0

当您想在多个活动中获取和设置相同的变量时,您也可以使用首选项。

于 2012-08-30T14:30:33.593 回答