有可能创建全局数组吗?

时间:2013-05-27 06:04:15

标签: java android

我需要在A类的50个DataPack.class实例中填充数据,但是我需要在某个类B中读出该数据。类DataPack看起来像这样:

public class DataPack {
    int fNumber;
    int dateTime;
    int Year, fMonth, fDay;
    int fTimeHours, fTimeMin, fTimeSec;
    int fSize;
    char[] name = new char[18];
    char[] surname = new char[18];
}

在A类中我会创建DataPack [] mDataPack = new DataPack [50];然后填充每个数组成员中的数据。但是对于B类阅读,这个数据阵列需要是全局的。  这有可能以这种方式解决这个问题吗?或存在更好的解决方案

感谢您的帮助!

3 个答案:

答案 0 :(得分:5)

创建一个ClassicSingleton.java类,如下所示,并在任何一个类中使用任何函数或数据成员。

如何制作Singleton Class?

public class ClassicSingleton {

   private static ClassicSingleton instance = null;
   public ArrayList<String> name = new ArrayList<String>(); // Member

   protected ClassicSingleton() {
      // Exists only to defeat instantiation.
   }
   public static ClassicSingleton getInstance() {
      if(instance == null) {
         instance = new ClassicSingleton();
      }
      return instance;
   }
   public String getName()
   {
   String myName="Chintan Khetiya";
   return myName;
   }

   public ArrayList<String> getNameformarray() {
     name.add("Android");
     name.add("IPhone");
     name.add("Windows");
     return name;

    }

}

如何使用Singleton类的函数和成员?

ClassicSingleton CS= new ClassicSingleton();
CS.getInstance();
String myName=CS.getname(); // Output will be >> Chintan Khetiya
String like=CS.getNameformarray().get(1); // Output will be >> Android

同样,您可以通过对象的静态引用公开使用数据成员。

这是最好的搁浅使用方式。

答案 1 :(得分:0)

试试这个解决方案

  • 制作BaseActivity展开Activity
  • 将您的其他活动扩展为BaseActivity
  • DataPack
  • 中创建BaseActivity数组实例
  • 保存DataPack详细信息时,请将其保存在BaseActivity

答案 2 :(得分:0)

Android有一个名为Application类的特殊类。如果您在那里声明任何变量,则可以通过您的应用程序访问它。它就像一个全球单身人士。

  public class DataPack {
  int fNumber;
  int dateTime;
  int Year, fMonth, fDay;
  int fTimeHours, fTimeMin, fTimeSec;
  int fSize;
  char[] name = new char[18];
  char[] surname = new char[18];
  }
  public class A extends Application 
  {     
   DataPack[] mDataPack = new DataPack[50];
  } 

现在去展示并进行以下更改:

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

然后你可以去任何活动并使用这个全局单身,如:

  DataPack pack = (DataPack)getApplication();
  //get the array using <pack.mDataPack> in a loop.

使用单身人士的好处: *即使屏幕方向发生变化,应用程序状态也保持不变。