1

我的偏好片段中有一个 EditTextPrefernce。我在 XML 中将它设置为 androd:numeric="integer"。好的,这是可行的...但问题是用户必须在此首选项中插入一个值,他不能删除所有内容并单击确定,因为那时我将获得空值。我已将 XML 默认值设置为 10000,并且在 preference.getLong 方法中也设置了默认值 1000。

所以我认为当用户在对话框中按下“确定”时,我必须以某种方式检查编辑文本。这可能吗?还是有人有更好的解决方案?

4

1 回答 1

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;
                    }
                });
于 2012-12-07T10:56:13.703 回答