Android 在 Activity 之间传递变量

标签 android android-activity global-variables parameter-passing

我想在 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/

相关文章:

java - Dagger 2 如何解决构造函数依赖

android - 如何从第二个 Activity 返回到第一个 Activity ?

python - 全局名称 'getYearlyCost2' 未定义

android - 单击按钮设置全局变量值

java - 将全局变量传递给对象

android - 未定义的函数引用 Android NDK

Android PackageInstaller,更新后重新打开应用程序

android - 我怎么玩彩信://link in android media player

android - 如何处理 Activity android

android - 应用 Android "Dialog"主题并适当调整大小