如何从其他活动中访问主要活动中的实例变量和方法?

时间:2012-08-30 14:25:21

标签: android

  

可能重复:
  Android: How to declare global variables?

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

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?
    }
}

5 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分:3)

您可以在Intent中将其作为额外内容传递给您Activity

答案 2 :(得分:1)

这可能对您有所帮助: How to declare global variables in Android?

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

答案 3 :(得分: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);
    }
}

答案 4 :(得分:0)

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