我想在 android 中的 Activity 之间传递一个或多个变量。一种解决方案是使用全局变量,这里有解释: 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;
}
}
然后在您的 Activity 中,您可以像这样获取和设置变量:
// set
((MyApplication) this.getApplication()).setSomeVariable("foo");
// get
String s = ((MyApplication) this.getApplication()).getSomeVariable();
当按下 ListView 上的项目时,我想使用它并在我的一个 Activity 中设置一个全局变量。所以我有这段代码:
lv.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
.
.
.
((MyApplication) this.getApplication()).setSomeVariable("foo");
}
});
但是我收到一条错误消息,指出“方法 getApplication() 未定义类型为新的 AdapterView.OnItemClickListener(){}”。
我想知道我收到此错误的原因是什么以及如何修复它,或者将变量从一个 Activity 传递到另一个 Activity 的更好方法。
谢谢,
张杰
最佳答案
在匿名类中你不能这样说。你必须在内部类周围指定类。
比如 MyApplication.this.get..
使用时:
class MyApplication {
lv.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
((MyApplication) MyApplication.this.getApplication()).setSomeVariable("foo");
}
}
}
“这个”。在引用内部类本身的烦人内部类中。
关于Android 在 Activity 之间传递变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6718363/