Подтвердите настройки. Android - PullRequest
9 голосов
/ 27 сентября 2011

У меня PreferenceActivity с 2 полями.

  1. URL
  2. Время в секундах

Мне нужно проверить первый для действительного URL-адреса и второй для целочисленного значения. Как мне это сделать стандартными средствами?

Ответы [ 2 ]

16 голосов
/ 18 июля 2012

Вот код, реализующий OnPreferenceChangeListener в вашем фрагменте:

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    addPreferencesFromResource(R.xml.preferences);

    Your_Pref = (EditTextPreference) getPreferenceScreen().findPreference("Your_Pref");

    Your_Pref.setOnPreferenceChangeListener(new OnPreferenceChangeListener() {

        @Override
        public boolean onPreferenceChange(Preference preference, Object newValue) {
            Boolean rtnval = true;
            if (Your_Test) {
                final AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
                builder.setTitle("Invalid Input");
                builder.setMessage("Something's gone wrong...");
                builder.setPositiveButton(android.R.string.ok, null);
                builder.show();
                rtnval = false;
            }
            return rtnval;
        }
    });
}
3 голосов
/ 27 сентября 2011

Вы можете использовать атрибут android: inputType для этих полей в xml, это покажет пользователю клавиатуру для ввода значения в определенном формате.

Подробнее

http://developer.android.com/reference/android/text/InputType.html

Но это не гарантирует, что URL не будет искажен. Это вам нужно проверить с помощью регулярного выражения в вашем обработчике отправки.

...