Android - кнопка отключена, пока действительный URL не введен в тексте редактирования - PullRequest
0 голосов
/ 24 октября 2011

Я пытаюсь создать экран с EditText, где необходимо ввести URL-адрес, и кнопкой Verify, которая будет выделена при вводе действительного URL-адреса.

Я хотел бы знать, какова логика, чтобы определить, является ли введенный URL-адрес действительным или нет?Стоит ли искать строку .com в тексте редактирования или есть какая-то другая логика?и Как я могу получить текст, как и когда пользователь вводит символ, чтобы кнопка подсвечивалась, как только введен действительный URL.

Заранее спасибо.

Ответы [ 3 ]

4 голосов
/ 24 октября 2011
  1. Проверка URL: Регулярное выражение для сопоставления URL-адресов в Java
  2. Как включить кнопку только тогда, когда пользователь вводит действительный URL-адрес:

Давайтедумаю, у вашего EditText есть txt_url id:

EditText editText = (EditText) findViewById(R.id.txt_url);
editText.addTextChangedListener(new TextWatcher() {
    @Override
    public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
    }

    @Override
    public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
    }

    @Override
    public void afterTextChanged(Editable editable) {
        // lets supouse validation method is called validUrl()
        button.setEnabled(validUrl(editable.toString()));
    }
});
1 голос
/ 24 октября 2011

Вы можете попытаться создать объект URL и поймать исключение MalformedURLEx, например:

    editText.addTextChangedListener(new TextWatcher() {  
        @Override
        public void afterTextChanged(Editable s) {
            try {
                URL url = new URL(String.valueOf(s));
                // code to show verify button here
            } catch (MalformedURLException e) {
                // show not verified here
            }
        }
    });
1 голос
/ 24 октября 2011

Попробуйте это:

UrlValidator validator = new UrlValidator();
validator.validate(url);

Я думаю, validator.validate - логическое значение, но я не уверен ...

После этого вы выполняете вызов setVisible(true/false) кнопки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...