Как я могу сделать ссылки в клиенте EditText? - программирование
Подтвердить что ты не робот

Как я могу сделать ссылки в клиенте EditText?

У меня есть EditText на Android, для которого я хотел бы, чтобы любые встроенные URL-адреса были доступны для просмотра. Я использовал класс Linkify, который превратил их в синий цвет и подчеркнул их. Тем не менее, я не могу понять, как сделать их кликабельными.

Спасибо!

4b9b3361

Ответ 1

XML:

 android:linksClickable="true"
 android:autoLink="web|email"

JAVA:

TextView textView = (TextView) findViewById(R.id.textViewId);
textView.setText(Html.fromHtml(html));
textView.setMovementMethod(LinkMovementMethod.getInstance());

Ответ 2

Для редактирования текста мне удалось получить ссылки, которые можно щелкнуть следующим образом. Сначала я реализовал Custom MovementMethod, как описано здесь

Java

(Создайте текст редактирования из xml или контекста)

editText.setLinksClickable(true);
editText.setAutoLinkMask(Linkify.WEB_URLS);
editText.setMovementMethod(CustomMovementMethod.getInstance());
//If the edit text contains previous text with potential links
Linkify.addLinks(editText, Linkify.WEB_URLS);

Затем, чтобы управлять тем, что URL-адреса выглядят как ссылки, в то время как пользователь набирает

editText.addTextChangedListener(new TextWatcher() {
        @Override
        public void beforeTextChanged(CharSequence s, int start, int count, int after) {

        }

        @Override
        public void onTextChanged(CharSequence s, int start, int before, int count) {


        }

        @Override
        public void afterTextChanged(Editable s) {

                Linkify.addLinks(s, Linkify.WEB_URLS);

        }
    });