Как я могу сделать ссылки в клиенте EditText?
У меня есть EditText
на Android, для которого я хотел бы, чтобы любые встроенные URL-адреса были доступны для просмотра. Я использовал класс Linkify
, который превратил их в синий цвет и подчеркнул их. Тем не менее, я не могу понять, как сделать их кликабельными.
Спасибо!
Ответы
Ответ 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);
}
});