我需要在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类阅读,这个数据阵列需要是全局的。 这有可能以这种方式解决这个问题吗?或存在更好的解决方案
感谢您的帮助!
答案 0 :(得分:5)
创建一个ClassicSingleton.java
类,如下所示,并在任何一个类中使用任何函数或数据成员。
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;
}
}
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
数组实例
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.
使用单身人士的好处: *即使屏幕方向发生变化,应用程序状态也保持不变。