簡體   English   中英

如何在多個活動之間共享數據?

[英]How to share data between multiple activities?

這將是我在android studio中的第一個項目。 我有一些Java和C / C ++經驗。 盡管在程序開發方面,我仍然是一個初學者。 我從未開發過android應用。

該應用程序將用於跟蹤鍛煉計划。 用戶需要為以下各項輸入他的1個代表最大值; 板凳,深蹲,硬拉。 我希望該應用程序使用這些輸入來使鍛煉程序基於它們。 這將涉及多個活動,這些活動共享和操縱該數據。

接收用戶輸入,將其保存(意味着將其存儲在某個位置,即使應用終止時也保持不變)以及具有多個活動可顯示的最佳方法是什么? 該應用程序只會要求用戶輸入一次。 如果用戶想更改輸入,則可以在設置中完成。

當您調用Intent從一個活動跳到另一個活動時,您可以放置​​一些數據或值,這些數據或值是第二個活動或任何其他用途所需的。 您必須對所有活動調用執行相同的操作,最后可以在需要數據的地方使用它。

intentObject.putExtra("KEY", value);

Bundle bundle = getIntent().getExtras();

int value = bundle.getInt("KEY");
or
String value = bundle.getString("KEY");
or
DataObject dataObject = bundle.getString("KEY");

您也可以使用Gson放置數據對象並獲取數據對象。

通過使用INTENTS試試

第一次活動時

Intent intent = new Intent(Activity_FROM.this, Activity_TO.class);

intent.putExtra("KEY1", value);

intent.putExtra("KEY2", "a value");

startActivity(intent);

On second activity

Bundle bundle = getIntent().getExtras();

int value = bundle.getInt("KEY1");

String value2 = bundle.getString("KEY2");

為了更清楚,您最好了解android框架和術語的基本概念。 完成后,您可以輕松了解流程。

請訪問www.vogella.com

是的,Intent是在活動之間傳遞信息的方式,但是正如您將很快發現的那樣,Intent不是要保留整個數據對象並保持某種持久性,試圖實現數據傳遞將成為您的噩夢。

看看一些持久性框架(讓它成為一些SQLite包裝器,或者我個人喜歡realm.io,因為它們提供了諸如實時自動更新對象之類的非常酷的功能,它是基於其c ++引擎構建的,並且非常易於使用)...一旦將數據存儲在某種數據層中,就只能通過意圖傳遞對象的標識,並在接收活動中查詢它們。

這樣,您就可以在整個應用程序中保持模型的持久性,而不必麻煩地將對象的更改傳播回源活動,而不必擔心與Parcelables相關的麻煩(通過這種方法可以序列化對象以將其存儲在意向)

編碼愉快!

意圖是將數據從一個活動傳遞到另一個活動的一種方法。但是,每次從一個活動更改為另一個活動時,都需要傳遞數據。另一種更簡單有效的方法是使用單例:您可以在其中寫入的類並通過為其創建實例來訪問任何活動。 只是看看這個https://gist.github.com/Akayh/5566992

暫無
暫無

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

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