簡體   English   中英

通過sharedPreferences保存和加載一個活動

[英]Saving and loading in one activity through sharedPreferences

所以我想做的就是通過sharedPreferences將用戶當前的進度保存在Textviews.java中。 例如,活動包含多個文本視圖及其中的用戶類型。 用戶按下時,應保存在文本視圖中鍵入內容的當前狀態。 一旦用戶按下Main.java上的退出按鈕,就會彈出一個警告對話框,詢問用戶是否要保存鍵入的內容。 如果他選擇是,則將保存並關閉應用程序;如果未選擇,則將不保存並關閉應用程序。

到目前為止,我已經成功保存了用戶在Textviews.java中按下時所做的操作,但是我有幾個問題,當用戶在警報對話框中按“是”時,如何在警報對話框出現時提交保存。 並且,當用戶返回到Textviews活動時,加載數據。

關於sharedPreferences,我有幾個問題。 1)在整個WHOLE應用程序中,是否只能使用一個sharedPreference()對象存儲其數據? 或者可以有多個對象。 如果允許多個對象,那么1個活動本質上是否會獲得一個sharePreference對象,或者一個活動可以具有多個sahrepreference對象來存儲其數據? 2)如何訪問其他活動共享的偏好數據? 3)如何知道共享首選項文件是否存在?

1)在整個WHOLE應用程序中,是否只能使用一個sharedPreference()對象存儲其數據? 或者可以有多個對象。 如果允許多個對象,那么1個活動本質上是否會獲得一個sharePreference對象,或者一個活動可以具有多個sahrepreference對象來存儲其數據?

可以有多個共享首選項。 當您嘗試獲取SharedPreference的實例時,將為其命名。

getSharedPreferences( SHARED_PREFS_FILE_NAME ,Context.MODE_PRIVATE);

SHARED_PREFS_FILE_NAME是共享首選項的名稱。 如果您在其他地方使用其他名稱,則會創建多個“共享首選項”。

SharedPreference是XML文件,不同的文件名,不同的SP。

2)如何訪問其他活動共享的偏好數據? 3)如何知道共享首選項文件是否存在?

調用此方法時>> getSharedPreferences( SHARED_PREFS_FILE_NAME ,Context.MODE_PRIVATE);

它檢查sharedPreference文件是否存在,如果存在,它將打開現有文件,或創建新文件。

您可以從應用程序中的任何位置保存數據,並可以從任何位置取回數據,確保在getSharedPreferences傳遞相同的SharedPreferences名稱

這是Android文檔[getSharedPreferences][1]

public abstract SharedPreferences getSharedPreferences (String name, int mode)

檢索並保留首選項文件“名稱”的內容,並返回一個SharedPreferences,您可以通過該SharedPreferences檢索和修改其值。 只有相同名稱的調用者將返回一個SharedPreferences對象的實例,這意味着它們將在進行編輯后立即看到彼此的編輯。

編輯:-要刪除“共享首選項”特定值或完整文件清除,請遵循以下參考答案

刪除特定值: SharedPreferences.Editor.remove()后跟commit()

要刪除它們,所有SharedPreferences.Editor.clear()后跟commit()

暫無
暫無

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

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