将变量从一个类传递到另一个类而不使用intent得到额外的

时间:2012-07-04 09:40:28

标签: java android

我今天正在做一些Android代码,现在问题是我需要传递变量。现场是我需要首先登录到Facebook然后获取我的信息。之后会出现一个启动画面,它会使用意图显示我的姓名等信息。之后主屏幕现在将出现,并且启动画面中的所有数据现在也将使用意图传递到主屏幕,但问题是这个主屏幕只是我的tabViews的容器,我可以随时从一个导航页面到另一个,我认为我没有必要再次使用这一部分的意图。现在我需要将传递到主屏幕的所有传递数据下载到我的一个选项卡并将其显示在TextView上。

6 个答案:

答案 0 :(得分:3)

您可以使用android.app.Application类来实现此目的。

创建&的步骤使用Application类:

  1. 创建您的Application类。示例如下所示:

    public class ApplicationController extends Application {
    
    //Application wide instance variables
    //Preferable to expose them via getter/setter methods
    
    @Override
    public void onCreate() {
        super.onCreate();
        //Do Application initialization over here
    }
    
    //Appplication wide methods
    //Getter/Setter methods
    }
    
  2. AndroidManifest.xml

    中指定您的应用类

    <application android:icon="@drawable/icon" android:label="@string/app_name" android:name=".ApplicationController">

  3. 获取Application Class实例的实例并调用各种方法:

    ApplicationController AC = (ApplicationController)getApplicationContext();

  4. 希望这有帮助。

答案 1 :(得分:1)

在主屏幕中使用公共静态变量。或者您也可以使用Application类来达到此目的。 其他选项是SharedPreferences

对于Application类全局变量,请查看此SO问题How to declare global variables in Android?

答案 2 :(得分:1)

将变量定义为公共静态或另一个选项是将变量的值存储到共享首选项中,并在下一个活动中检索首选项的值,并参考下面的链接以获取更多信息。

Shared Preferences

答案 3 :(得分:1)

您可以使用SharedPreferences传递这样的值:

//for write id one Activity
SharedPreferences spre = context.getSharedPreferences("Your prefName",
        Context.MODE_PRIVATE);
SharedPreferences.Editor prefEditor = spre.edit();
prefEditor.putString("key", value);
prefEditor.commit();


// for get id  second Activity
SharedPreferences spre = context.getSharedPreferences("Your prefName",
        Context.MODE_PRIVATE);
String mystring=  spre.getString("key","");

答案 4 :(得分:1)

最简单的方法是,您可以使用带有静态变量的数据类在任何地方使用它。像这样的东西。

public class User {

    public static String name;
    public static String email;
        .....

}

然后,在从Facebook收到数据后,您可以填写此内容,并可以随处访问它。

执行所需任务的另一种方法是您的类的SharedPreferences和Application Object。您可以阅读herehere

答案 5 :(得分:0)

假设第一个类是A而另一个类是B并且你想要从A到B发送数据,那么你想要从A类发送user_id到B然后在你的A类中 将user_id声明为公共字符串。在B类中,将您的user_id作为id = A.user_id。

希望这可以帮到你。