我的偏好片段中有一个 EditTextPrefernce。我在 XML 中将它设置为 androd:numeric="integer"。好的,这是可行的...但问题是用户必须在此首选项中插入一个值,他不能删除所有内容并单击确定,因为那时我将获得空值。我已将 XML 默认值设置为 10000,并且在 preference.getLong 方法中也设置了默认值 1000。
所以我认为当用户在对话框中按下“确定”时,我必须以某种方式检查编辑文本。这可能吗?还是有人有更好的解决方案?
我的偏好片段中有一个 EditTextPrefernce。我在 XML 中将它设置为 androd:numeric="integer"。好的,这是可行的...但问题是用户必须在此首选项中插入一个值,他不能删除所有内容并单击确定,因为那时我将获得空值。我已将 XML 默认值设置为 10000,并且在 preference.getLong 方法中也设置了默认值 1000。
所以我认为当用户在对话框中按下“确定”时,我必须以某种方式检查编辑文本。这可能吗?还是有人有更好的解决方案?
以下是您可以实现 所需内容的代码片段,
editPreference.setOnPreferenceChangeListener(new OnPreferenceChangeListener()
{
@Override
public boolean onPreferenceChange(Preference preference, Object newValue)
{
try
{
//Put validation of newValue entered by user
//Following is example you can change as you wish
if(newValue != null)
{
long myVal = Long.parseLong(String.valueOf(newValue));
if(myVal> 0)
{
//All ok
}
else
{
//Invalid Number
}
}
}
catch (final Exception e)
{
return false;
}
return false;
}
});