我有一個類管理從文件加載的數據。這個類在主Activity中初始化。當主Activity創建一個新的Activity時,新的Activity需要來自文件的數據,換句話說,它需要對管理數據的類的引用。什麼是最好的方法來做到這一點?Android - 多個活動使用的一個類
1
A
回答
0
如果一個類僅僅代表一個數據塊,它從文件中讀取,有什麼不對讓你的類單身,就像這樣:
class FileData {
private static final FileData instance = readFile();
public static FileData getInstance() {
return instance;
}
private static readFile() {
... // Read the file, and create FileData from it
}
public int getImportantNumber() {
return ...
}
}
現在你可以引用從所有其他類的數據,這樣的:
FileData.getInstance().getImportantNumber();
2
是的,最好的方法是隻創建一個instance
你的班級。這是Singleton設計模式。
0
singleton
模式應該適合您的需求。這基本上是一個只能實例化一次的類,並且可以管理這個實例本身,所以你可以從任何地方得到它。
像這樣的教程將幫助您入門:http://portabledroid.wordpress.com/2012/05/04/singletons-in-android/
0
1:Singleton模式
2 .:您可以使課程Parcelable。
// simple class that just has one member property as an example
public class MyParcelable implements Parcelable {
private int mData;
/* everything below here is for implementing Parcelable */
// 99.9% of the time you can just ignore this
public int describeContents() {
return 0;
}
// write your object's data to the passed-in Parcel
public void writeToParcel(Parcel out, int flags) {
out.writeInt(mData);
}
// this is used to regenerate your object. All Parcelables must have a CREATOR that implements these two methods
public static final Parcelable.Creator<MyParcelable> CREATOR = new Parcelable.Creator<MyParcelable>() {
public MyParcelable createFromParcel(Parcel in) {
return new MyParcelable(in);
}
public MyParcelable[] newArray(int size) {
return new MyParcelable[size];
}
};
// example constructor that takes a Parcel and gives you an object populated with it's values
private MyParcelable(Parcel in) {
mData = in.readInt();
}
}
然後你可以通過意圖送你的對象:
Intent i = new Intent();
i.putExtra("name_of_extra", myParcelableObject);
,並得到它在你的第二個活動這樣的:
Intent i = getIntent();
MyParcelable myParcelableObject = (MyParcelable) i.getParcelableExtra("name_of_extra");
爲了方便我從this SO線上取得了代碼,因爲它非常好,但它也很漂亮原文如此。你甚至可以發送對象列表,但它有點複雜,需要更多示例代碼和解釋。如果這是您的目標,請詢問。對於一個對象,代碼是完全正確的。
相關問題
- 1. Android - 使用多個活動
- 2. 使Android活動等待一個類
- 3. Android:多個視圖在一個活動
- 4. Android碎片 - 多個活動或一個?
- 5. 從另一個類調用活動 - Android
- 6. Android上一個類中的多個活動
- 7. Android在活動中覆蓋多個類
- 8. Android中的多個活動
- 9. Android啓動多個活動
- 10. Android多個活動訪問一個Java類
- 11. Android多個webservice調用單個活動
- 12. ANDROID:從另一個活動調用許多活動
- 13. 多個videoview一個活動
- 14. 多個android-menudrawer在同一活動
- 15. 從一個活動到另一個活動使用Arraylist傳遞不同的類
- 16. 意圖從Android應用程序類啓動一個活動類
- 17. 如何創建一個活動類到另一個活動類?
- 18. 使用單個類中的方法的多個活動
- 19. 調用同一個活動的多個實例和多個活動
- 20. 如何在android的單個活動中使用多個佈局?
- 21. 一個活動中的多個片段
- 22. Android的 - 啓動多個活動
- 23. Android中有3個活動的多個活動
- 24. 要調用一個函數,從另一個類到ANDROID的活動類
- 25. 使用一個活動的多個視圖
- 26. 多個xml文件在一個活動 - Android應用程序
- 27. Android一個活動兩個動畫
- 28. Android:單個活動,多個視圖
- 29. 在Android中調用多個活動
- 30. 在android eclipse中調用多個活動
我加 '如果(_instance == NULL) _instance =新的FileData();' 到'的getInstance()'所以它會實例化一次。 – MazzMan