2

我正在使用 android TabWidget,并且我有一个主要活动来管理所有选项卡。每个选项卡都有自己的活动:

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

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

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

非常感谢你。

4

4 回答 4

5

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

例如,public static integer myInt;

myInt = ...;

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

于 2012-08-31T20:37:12.230 回答
4

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

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();
于 2012-08-31T20:44:38.363 回答
3

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

于 2012-08-31T20:31:57.847 回答
1

我认为为您的目的使用片段会更好..

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

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

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

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

于 2012-08-31T20:36:18.320 回答