我的偏好片段中有一个EditTextPrefernce。我在XML中将它设置为androd:numeric =“integer”。好的,这有效...但问题是用户必须在此首选项中插入一个值,他无法删除所有内容并单击确定,因为我将获得null值。我已将XML默认值设置为10000,并在preference.getLong方法中也返回默认值1000。
所以我认为当用户在对话框中按下确定时我必须以某种方式检查编辑文本。这可能吗?或者有没有人有更好的解决方案?
答案 0 :(得分:1)
以下是代码的代码,您可以通过它获得所需内容,
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;
}
});