EditTexts со ссылками, как кликабельными, так и редактируемыми

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

Проблема в том, что:

Если последняя часть текста является ссылкой, нажатие в любом месте приводит к открытию ссылки.

Я хочу, когда я нажимаю на кнопку здесь, чтобы редактировать область редактирования текста, это будет редактируемым?

введите описание изображения здесь

2 ответа

Решение

Дэниел Лью написал в блоге об этом несколько дней назад. Он предлагает следующее решение:

// Make links in the EditText clickable
editText.setMovementMethod(LinkMovementMethod.getInstance());

// Setup my Spannable with clickable URLs
Spannable spannable = new SpannableString("http://blog.danlew.net");  
Linkify.addLinks(spannable, Linkify.WEB_URLS);

// The fix: Append a zero-width space to the Spannable
CharSequence text = TextUtils.concat(spannable, "\u200B");

// Use it!
editText.setText(text); 

Вы можете найти пост здесь: Создание EditTexts со ссылками и кликабельными и редактируемыми

Проверьте следующий код.

EditText inputText;
//Edittext is clickable at right side.
inputText.setOnTouchListener(new View.OnTouchListener() {
        @Override
        public boolean onTouch(View v, MotionEvent event) {
            final int DRAWABLE_LEFT = 0;
            final int DRAWABLE_TOP = 1;
            final int DRAWABLE_RIGHT = 2;
            final int DRAWABLE_BOTTOM = 3;

            if (event.getAction() == MotionEvent.ACTION_UP) {
                if (event.getRawX() >= (inputText.getRight() - inputText.getCompoundDrawables()[DRAWABLE_RIGHT].getBounds().width())) {
                   //write your logic
                    return true;
                }
            }
            return false;
        }
    });
Другие вопросы по тегам