2016-02-11 73 views
0

所以我想要做的是通過sharedPreferences保存用戶在Textviews.java中所做的當前進度。例如。該活動包含幾個文字視圖和用戶類型。當用戶按下後,它應該保存textview中鍵入內容的當前狀態。 一旦用戶按下Main.java上的退出按鈕,會出現一個提示對話框,詢問用戶是否想保存他輸入的內容。如果他選擇了「是」,那麼它會保存並關閉應用程序,否則它不會保存並關閉應用程序。通過sharedPreferences保存和加載一個活動

到目前爲止,我已經設法保存了當用戶在Textviews.java內部按下時按下的內容,但是當用戶按下'yes'時警告對話框出現時如何提交保存,我有幾個問題警報對話框。而且,當用戶返回Textviews活動時加載數據。

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

回答

1

1)在整個應用程序中,它只能有一個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 Document說,關於[getSharedPreferences][1]

public abstract SharedPreferences getSharedPreferences (String name, int mode) 

檢索並保存首選項文件'name'的內容,返回一個SharedPreferences,通過它可以檢索和修改其值。只有一個SharedPreferences對象的實例返回給同一名稱的任何調用者,這意味着他們一旦創建就會看到對方的編輯。

編輯: -要刪除共享偏好特定的值或完整的文件明確,請按照以下 Reference answer

要刪除特定值:SharedPreferences.Editor.remove()後跟一個commit()

要刪除所有SharedPreferences.Editor.clear()其次a commit()

+0

感謝您的回答。真的很容易理解。是否可以刪除共享首選項文件? –

+0

查看編輯答案(它的最後部分)。 接受/ Upvote答案如果它幫助你。 – AAnkit

相關問題