簡體   English   中英

Android-ListPreference保存到文件還是在條目上單擊偵聽器?

[英]Android - ListPreference save to file or on entry click listener?

我的應用程序有一個首選項文件“設置”,其中包含10個鍵/值對。

鍵用作用戶的標題,值是URL的

用戶可以更改鍵和值,例如,第一個設置的值類似於“ example”,其值為“ example.com”,當用戶更改該設置時,鍵也將更改。 因此,第一個設置將變為“ different_example”,其值為“ different_example.com”。 全部存儲在“設置”首選項文件下。

到目前為止,我一直在管理此問題,方法是在ArrayList中打開一個包含當前鍵/值對的對話框,該列表具有onItemClickListener,該對話框會彈出第二個對話框,其中包含另一個可能的鍵/值對的ArrayList。 單擊新項目后,我將刪除當前設置,添加新的設置,然后使用新設置重新填充初始ArrayList。 這可以正常工作,並且可以同時更改和更新鍵和值,但是在兩個對話框中看起來很尷尬。

我想將其全部切換到ListPreferences。 與之類似,有十個不同的ListPreference項,每個設置一個,單擊該選項將打開所有可能的entryValue的列表,並在選中后從條目名稱更新鍵,從條目值更新值,並將其保存在相同的“設置”文件。 我沒有看到如何將ListPreferences保存到特定文件,以便可以調用

SharedPreferences settings = getSharedPreferences("settings", 0);

雖然在任何地方

我還一直在尋找某種單擊處理程序,以選擇選定條目時要觸發的操作,因此我可以手動更新“設置”文件,但沒有運氣。 這樣的事情存在嗎? 還是我還有其他方法可以做到這一點?

編輯:我可以使用OnPreferenceChange手動設置新值,但這不會返回值名稱,例如,人類可讀列表中使用的值。 關於如何獲得任何想法?

看看這是否可以讓您快速入門: 如何獲得在Android中工作的偏好設置?

如果您自定義ListPreference並遇到類似這樣的問題如何使首選項不保存到SharedPreferences?

嗯,這似乎是令人難以置信的倒退,但是我所做的是將每個ListPreference設置為具有onPreferenceChangeListener,並將ListPreference的每個entryValue包含名稱以及用任意字符串分隔的值。 然后在onPreferenceChange中,我可以引用新值(現在也包含新鍵),將其轉換為在任意分隔符處的String []拆分,然后將String [] 0索引分配為新鍵,並將1索引刪除原始設置后,使用SharedPreferences.Editor作為新值。

除非有某種方法可以從ListPreference的entryValues數組中返回Entry名稱,或者指定ListPreference保存到特定的設置文件(兩者均未記錄),否則這可能是我的最佳解決方案。

暫無
暫無

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

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