【发布时间】:2011-10-06 19:07:39
【问题描述】:
我想在 android 的活动之间传递一个或多个变量。一种解决方案是使用全局变量,这里解释: Android global variable 我在这里重复一遍:
您可以扩展基础 android.app.Application 类并添加成员变量,如下所示:
public class MyApplication extends Application {
private String someVariable;
public String getSomeVariable() {
return someVariable;
}
public void setSomeVariable(String someVariable) {
this.someVariable = someVariable;
}
}
然后在您的活动中,您可以像这样获取和设置变量:
// set
((MyApplication) this.getApplication()).setSomeVariable("foo");
// get
String s = ((MyApplication) this.getApplication()).getSomeVariable();
当按下 ListView 上的项目时,我想使用它并在我的一个活动中设置一个全局变量。所以我有这个代码:
lv.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
.
.
.
((MyApplication) this.getApplication()).setSomeVariable("foo");
}
});
但是我收到一条错误消息,提示“方法 getApplication() 未定义用于类型 new AdapterView.OnItemClickListener(){}”。
我想知道我收到此错误的原因是什么以及如何修复它,或者将变量从一个活动传递到另一个活动的更好方法。
谢谢,
TJ
【问题讨论】:
标签: android android-activity global-variables parameter-passing