android 如何使EditText中的链接可点击?

9rnv2umw  于 2023-06-27  发布在  Android
关注(0)|答案(4)|浏览(157)

我有一个Android上的EditText,我想为任何嵌入式网址是可点击的。我使用了Linkify类,它将它们变成了蓝色并加了下划线。然而,我不知道如何真正使他们点击。
谢谢!

gwbalxhn

gwbalxhn1#

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());
up9lanfz

up9lanfz2#

对于编辑文本,我设法通过以下方式获得可点击的链接。首先,我实现了一个自定义的MovementMethod,描述为here
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);

        }
    });
rjjhvcjd

rjjhvcjd3#

希望这能帮助到一些人

val message: String = String.format(
        getString(R.string.message_content),
        firstNameEditText.text,
        lastNameEditText.text,
        dateTextView.text,
        timeTextView.text
    )

    val gMapURL = getString(R.string.google_map_location)

    // Setup my Spannable with clickable URLs
    val spannable: Spannable = SpannableString(gMapURL)
    Linkify.addLinks(spannable, Linkify.WEB_URLS)

    // Append a zero-width space to the Spannable
    val gText = TextUtils.concat(spannable, "\u200B")

    val finalText = TextUtils.concat(message, gText)
    messageContentEditText.setText(finalText)
velaa5lx

velaa5lx4#

XML -将其写入EditText

android:autoLink="web"
android:inputType="textWebEditText"

相关问题