1

設定フラグメントにEditTextPrefernceがあります。XMLでandrod:numeric="integer"に設定しました。正常に機能しています...しかし、問題は、ユーザーがこの設定に値を挿入する必要があることです。すべてを削除して[OK]をクリックすることはできません。これは、null値を取得するためです。XMLのデフォルト値を10000に設定し、preference.getLongメソッドでデフォルトの1000値も返すように設定しました。

したがって、ユーザーがダイアログで[OK]を押したときに、編集テキストを何らかの方法で確認する必要があると思います。これは可能ですか?または誰かがより良い解決策を持っていますか?

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 に答える