Android标签和全局变量

时间:2012-08-31 20:28:16

标签: android global-variables android-tabs

我正在使用android TabWidget,我有一个主要活动,我在管理所有标签。 每个标签都有自己的活动:

private void setTabs()
{
    addTab("News", NewsActivity.class);
    addTab("Project", ProjectActivity.class);
    addTab("About", AboutActivity.class);
    addTab("Contact", ContactActivity.class);
}

每个选项卡的数据都以JSON格式从服务器下载。我的目标是下载有关应用程序操作的所有数据,然后将其用于每个选项卡(活动)。

是否有可能将这些变量从主要活动分享给我管理标签的其他人?我知道使用Intent类,但可能还有另一个更简单的选项卡解决方案。

非常感谢。

4 个答案:

答案 0 :(得分:5)

在主活动中声明静态变量并将数据存储在其中。

例如,public static integer myInt;

myInt = ...;

现在,当您转到其他活动时,只需使用 MainActivity.myInt 即可访问其值,甚至可以根据需要进行更新。无需使用意图传递变量。

答案 1 :(得分:3)

您可能想要创建class MyAppication extends Application(您还必须将其添加到Manifest中)。这个MyApplication类将在您的应用程序运行时一直存在,因此您可以将内容存储在那里。

答案 2 :(得分:3)

您可以创建一个类,其中包含您可能希望在整个应用程序中使用的任何变量或对象。

public class myClass {
    private static int myInt;
    public static void setMyInt(int i)
    {
        myInt = i;
    }

    public static int getMyInt()
    {
        return myInt;
    }

}

然后你可以从任何地方设置任何变量并在任何地方使用它。

myClass.setMyInt(10);
int i = myClass.getMyInt();

答案 3 :(得分:1)

我认为为你的目的使用碎片会更好..

你有一个主要的活动,它有tabhost / tabwidget和一个布局来显示每个的片段..

根据当前选择的选项卡,您将在布局中显示相应的片段。

这样,您的主要活动可以包含您的片段需要使用的任何变量数据。

所有片段都能够访问其显示的活动中的数据,只需确保创建getter和setter