Android:EditTextPreference对话框显示上一次调用的值

时间:2018-11-28 11:46:26

标签: android preference edittextpreference

在我的应用程序中,我在设置屏幕中有一个帐户列表。如果单击一个帐户,则转到显示该帐户详细信息的屏幕。帐户名称是一个EditTextPreference,如果您单击它,Android将显示一个对话框,使您可以更改帐户名称。

第一次显示此对话框时,未指定任何值。用户输入帐户的新名称,然后单击“确定”,帐户名称将更新。

问题是,当我查看其他帐户详细信息并单击其名称进行编辑时,该对话框显示了我以前的重命名中的文本。为什么这没有显示任何值或帐户的当前名称?为什么要重复使用其他帐户的值?

enter image description here

2 个答案:

答案 0 :(得分:0)

由于对所有帐户使用一个对话框而导致的问题。

您应在按OK后清除“编辑文本”,还应使用SharedPreference来存储每个帐户的详细信息。

答案 1 :(得分:0)

引起此问题的原因是共享首选项名称为“ global”。因此,当您打开一个帐户的首选项时,您将获得最后设置的值。

我们所做的修复是在设置屏幕的onCreate()中,将帐户名称首选项重置为设置屏幕所针对的帐户名称。然后,在打开“编辑名称”对话框时,它具有正确的帐户名。