在我的应用程序中,我在设置屏幕中有一个帐户列表。如果单击一个帐户,则转到显示该帐户详细信息的屏幕。帐户名称是一个EditTextPreference,如果您单击它,Android将显示一个对话框,使您可以更改帐户名称。
第一次显示此对话框时,未指定任何值。用户输入帐户的新名称,然后单击“确定”,帐户名称将更新。
问题是,当我查看其他帐户详细信息并单击其名称进行编辑时,该对话框显示了我以前的重命名中的文本。为什么这没有显示任何值或帐户的当前名称?为什么要重复使用其他帐户的值?
答案 0 :(得分:0)
由于对所有帐户使用一个对话框而导致的问题。
您应在按OK后清除“编辑文本”,还应使用SharedPreference来存储每个帐户的详细信息。
答案 1 :(得分:0)
引起此问题的原因是共享首选项名称为“ global”。因此,当您打开一个帐户的首选项时,您将获得最后设置的值。
我们所做的修复是在设置屏幕的onCreate()中,将帐户名称首选项重置为设置屏幕所针对的帐户名称。然后,在打开“编辑名称”对话框时,它具有正确的帐户名。