簡體   English   中英

整個Android應用程序均可訪問全局對象

[英]Global Objects accessible throughout Android application

我有一個使用自定義類的應用程序。 啟動應用程序時,我將使用它將保存的所有數據填充main活動中的此類的實例。

然后,基本數據顯示在ListView中,您可以從中選擇ListView項目以查看另一個Activity中顯示的更多信息。

當前,我必須使用以下方法將與新活動相關的數據傳遞給它:

intent.putExtra("NAME", value);

我想實現一個ViewPager,以便用戶可以輕松地在ListView項之間切換。 因此,當前使用的方法不是很好,因為我一次只能獲得一個條目的數據,因此需要返回到原始Activity以再次獲得所有數據。

有沒有辦法讓我的類對象在我的應用程序中隨處可用? 我覺得我的應用程序代碼越來越腫,因為我正在用不良的代碼方法克服這些問題。

我剛剛研究了使用:

MyApp myapp = ((MyApp)context.getApplication());

但是,除非我可以傳遞上下文,否則這是行不通的,我不確定該怎么做?

在C#中,您將創建一個可以處理此問題的靜態類。

謝謝尼爾

你可以有:

  • 包含您的數據的靜態類(在進程被殺死之前可用)
  • 提供訪問您的數據的本地服務
  • 存放您的數據的應用程序類
  • 一種數據庫機制來持久化數據(在這種情況下,您只需傳遞ID作為額外的意圖)

所有這些選項或多或少都是有效的,它還取決於您對數據的處理方式,數據的來源...

我認為您正在尋找Singleton對象。 創建將所有數據作為單例對象保存的自定義類,並從代碼中的任何位置訪問其數據。 此外,由於此數據可能與UI並不直接相關,因此您不應將其與活動相關聯。

HTH,

阿克沙伊

通讀此問題及其答案。 我認為第一個答案的第三段對您有用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM