我想从其他活动中访问主要活动中的公共实例变量。 我想在主要活动中调用公共方法。 我怎么能这样做?
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?
}
}
答案 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)
如果您想在多个活动中获取和设置相同的变量,您也可以使用首选项。