我正在使用android TabWidget,我有一个主要活动,我在管理所有标签。 每个标签都有自己的活动:
private void setTabs()
{
addTab("News", NewsActivity.class);
addTab("Project", ProjectActivity.class);
addTab("About", AboutActivity.class);
addTab("Contact", ContactActivity.class);
}
每个选项卡的数据都以JSON格式从服务器下载。我的目标是下载有关应用程序操作的所有数据,然后将其用于每个选项卡(活动)。
是否有可能将这些变量从主要活动分享给我管理标签的其他人?我知道使用Intent类,但可能还有另一个更简单的选项卡解决方案。
非常感谢。
答案 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