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

How to access instance variable and method in main activity from other activity?

本问题已经有最佳答案,请猛点这里访问。

Possible Duplicate:
Android: How to declare global variables?

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

1
2
3
4
5
6
7
8
9
10
11
12
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?
    }
}

你可以在Intent中作为额外的一部分通过,只要你启动新的Activity就可以了。


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

使用首选项来存储变量,或者简化:创建自己的应用程序类。这一个在整个应用程序生命周期中都是可用的,并且您可以在其中存储静态变量。


试试这个

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
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);
    }
}


这可能有助于您:如何在Android中声明全局变量?

您可以使用应用程序、共享引用或静态变量的子类。


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