我使用的是android TabWidget,我有一个主要活动,管理所有选项卡。每个选项卡都有自己的活动:
private void setTabs()
{
addTab("News", NewsActivity.class);
addTab("Project", ProjectActivity.class);
addTab("About", AboutActivity.class);
addTab("Contact", ContactActivity.class);
}
每个选项卡的数据都是以JSON格式从服务器下载的。我的目标是下载应用程序的oppening上的所有数据,然后将其用于每个选项卡(活动)。
是否有可能将主活动中的这些变量共享给我管理选项卡的其他人?我知道使用Intent类,但可能还有另一个更简单的选项卡解决方案。
非常感谢。
在主活动中声明静态变量并将数据存储在其中。
例如,public static integer myInt;
myInt = ...;
现在,当您转到其他"活动"时,只需使用MainActivity.myInt
即可访问其值,甚至可以根据需要进行更新。无需使用intets传递变量。
您可以创建一个类,其中包含您可能希望在整个应用程序中使用的任何变量或对象。
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();
您可能想要创建class MyAppication extends Application
(您还必须将其添加到Manifest中)。这个MyApplication
类将在应用程序运行的所有时间都存在,因此您可以在其中存储内容。
我认为最好将碎片用于您的目的。。
您有一个主活动,它有一个tabhost/tabwidget和一个显示每个片段的布局。。
根据当前选择的选项卡,您可以在布局中显示相应的片段。
这样,您的主要活动就可以拥有片段需要使用的任何变量数据。
所有片段都可以访问它们所显示的活动中的数据,只需确保创建getter和setter