我想在android中的活动之间传递一个或多个变量。一种解决方案是使用全局变量,它是在这里解释: Android global variable 我在这里重复:Android在活动之间传递变量
可以扩展基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()是未定义的类型新AdapterView.OnItemClickListener(){}”。
我想知道我得到这个错误的原因是什么,以及如何解决这个错误,或者将一个变量从一个活动传递给另一个的更好方法。
感谢,
TJ
MyApplication是与我想要使用setSomeVariable()的地方不同的类。可以说我希望在MyOtherApplication中完成它,而setSomeVariable方法在MyApplication中定义。所以你所建议的不是现在的样子。 – TJ1
对于我写的代码,“getApplication()”方法可以获得所需的类,当您在MyOtherApplication类中您必须编写MyOtherApplication.this ...因为您在匿名类中调用它并且关键字“this”指向内部类。 – Michele