Android在活动之间传递变量



我想在android的活动之间传递一个或多个变量。一种解决方案是使用全局变量,如下所示: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()是未定义的类型new AdapterView.OnItemClickListener(){}"。

我想知道是什么原因,我得到这个错误和如何修复它,或者一个更好的方式传递一个变量从一个活动到另一个。

谢谢,

TJ

在匿名类中你不能这么说。你必须围绕内部类指定Class。

像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");
        }
 }
}

匿名内部类中的"this."指向内部类本身。

你没有使用Intent的原因是什么?http://developer.android.com/guide/topics/fundamentals/activities.html StartingAnActivity

如果您在MyClass的成员函数中定义了匿名OnItemClickListener,则可以使用MyClass.this. getapplication()。OnItemClickListener不知道应用程序

我认为你不需要强制转换它…应用程序已经存在了。

MyApplication.getSomeVariable();

相关内容

  • 没有找到相关文章

最新更新