如何确保在保存时清除共享首选项

Jbr*_*ntt 2 android

在Android应用程序中,我让用户通过运行扩展PreferenceActivity的类来编辑他的首选项.在res\xml中我有一个文件--preferences.xml - 它有一个xml描述,用户可以配置哪些字段.像用户名和密码之类的东西.示例代码段:

<EditTextPreference android:name="User Name"
android:summary="Name in Your Name/Company format"
android:defaultValue="" android:title="Login name" android:key="userName" 
android:id="@+id/userName"/>

<EditTextPreference android:name="Password"
android:summary="Your web password" android:defaultValue=""
android:title="Login password" android:password="true" android:key="userPassword" 
android:id="@+id/userPassword"/>
Run Code Online (Sandbox Code Playgroud)

事情按预期工作.从我的主应用程序代码中,我可以访问用户已配置的值.

有一件事我希望得到一些关于如何处理的好建议:删除首选项值中的前导和尾随空格.

由于用户错误或有用的键盘应用程序,有时用户在EditTextPreferences字段中输入一个额外的空白字符.作为第一个或最后一个字符.

我希望不迟于用户退出PreferenceActivity时删除这些明显的输入错误.我希望得到一个清理用户偏好的好方法的建议.

Oll*_*e C 5

String.trim()在将它们保存到prefs之前,只需使用用户提供的值.trim()方法从输入字符串的前端和末尾删除所有空格字符.

http://developer.android.com/reference/java/lang/String.html#trim ()

  • 感谢您的建议.我希望你能为我澄清一些事情.因为我使用的是PreferencesActivity,所以我不会主动保存每个首选项值.在PreferencesActivity和xml文件的组合中,保存必须以某种方式隐藏在抽象层中.那么你如何建议我访问首选项的每一个值才能执行String.trim()? (2认同)
  • 啊,我明白了,抱歉,我错过了.我将扩展EditTextPreference以构建您自己的TrimmedEditTextPreference并覆盖setText()以执行trim()http://developer.android.com/reference/android/preference/EditTextPreference.html (2认同)