0

我的应用程序中有一个 Spinner。无论在微调器中选择什么,最好在会话中保存,所以我SharedPreferences用来保持用户的选择。

我不确定哪种是在需要时存储和检索此值的最佳方式。我想我看到了三个选项。

  1. 更新SharedPreferencesonItemSelected侦听器中的微调器。当我需要在我的应用程序中检索值以选择如何进行时,请从SharedPreferences.

  2. SharedPreferences中更新onPause()。当需要检索选定的值时使用spinnerName.getSelectedItem()

  3. 两者的结合。SharedPreferences在需要使用值时使用侦听器进行更新getSelectedItem()(是的,对此不太确定)。

这与我的微调器有关,但我想知道我的其他 UI 元素也有同样的事情,所以任何建议都会有所帮助。例如,一种方法更有效还是更有意义?

4

1 回答 1

1

如果你带着一个

  1. 一旦你这样做spinnerName.setOnItemSelected(this)了,它会立即调用监听器方法,如果你有逻辑将值存储在回调内的 Shared-preference 中,那么它可能会导致不一致,因为如果初始化微调器的逻辑在onCreate()方法中,那么很可能您的共享首选项值将始终将其重置为微调器中的默认选定值

  2. 如果您选择第二个选择,那么将值保存到共享首选项的逻辑是合理的,但是这样做很spinnerName.getSelectedItem().容易出错,而不是直接从共享首选项中获取值(是的!你为什么不直接从共享首选项中获取。)

  3. 没有评论 :-P 说真的

为什么要将一个简单的过程过度复杂化,因为最终这不应该变成维护的噩梦,因为一旦更多的变量和方法流式传输它,它可能会导致代码异味和复杂的逻辑来完成原本微不足道的任务。

把事情简单化。

于 2013-07-04T17:37:31.377 回答