当前位置: 首页 > 知识库问答 >
问题:

Edit文本中的多行文本,带有链接,可单击和可编辑

慕阳伯
2023-03-14

我正在使用多行EditText视图,它可以在输入中包含webUrl。为此,我使用LinkMovementMethod使EditText中的链接可点击。

我有同样的问题EditTexts链接都可点击和编辑,但我也有多行文本。

问题是:

如果字符串的最后一部分是链接,则单击任何位置都会打开链接。

扩展名:

当我点击编辑文本的当前区域时,它将是可编辑的。https://i.stack.imgur.com/DBKAX.png

示例:

XML布局:

    <EditText
    android:id="@+id/description"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:autoLink="web"
    android:gravity="start"
    android:hint="@string/Event_Description"
    android:inputType="textCapSentences|textMultiLine"
    android:minLines="12"
    android:textColorLink="@color/link_color"
    android:textIsSelectable="true" />

代码示例:

    etDescription = findViewById(R.id.description);
    etDescription.addTextChangedListener(descriptionTextWatcher);
    etDescription.setMovementMethod(LinkMovementMethod.getInstance());
    
private TextWatcher descriptionTextWatcher = 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);
    }
};

共有1个答案

沃瑾瑜
2023-03-14

暂时我意识到LongClick的反应,但我觉得这个解决方案很尴尬,我想让它变得更好。

代码示例:

etDescription.setOnLongClickListener(new View.OnLongClickListener() {
    @Override
    public boolean onLongClick(View view) {
        etDescription.requestFocus();

        InputMethodManager inputMethodManager = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
        inputMethodManager.showSoftInput(etDescription, InputMethodManager.SHOW_IMPLICIT);

        return true;
    }
});
 类似资料:
  • 问题内容: 我怎样才能让一个多可编辑的文本里面?支持单行,我们需要在弹出窗口中创建一个多行文本编辑框。 问题答案: 这是很好的环境…

  • 问题内容: 对于不可编辑的UITextView,我想在iOS9 +中嵌入这样的文本: 只需单击此处进行注册 我可以创建一个函数并处理文本,但是有没有更简单的方法? 我看到我可以使用NSTextCheckingTypeLink,因此在Interface Builder中无需“ click here”部分就可以单击文本: 只需http://example.com进行注册 如果相关,我正在使用Xcode

  • 问题内容: 假设我的网页上有这些元素。 我想单击带有文本的链接。如何使用 链接文本 来识别或单击该元素,而没有任何独特的属性,例如id或class。 在.Net中,我可以使用。nightwatch.js中的等效项是什么 问题答案: 定位器在内部使用XPath。 因此,使用XPath单击示例中的第二个链接: 请注意,根据内部HTML的不同,您可能需要连接子级并修剪空格:

  • 我们刚刚开始实施NatTable,我们非常高兴看到性能的提高。然而,我们在实现特定功能时遇到了困难。 我们想要的是在单元格中有可点击的文本,然后它将引用我们选择并进入视图的表中的一行。基本上,类似于: 通过单击。

  • 问题内容: 我正在尝试通过将包含某些URL的String替换为与浏览器兼容的链接URL来做一些事情。 我最初的String看起来像这样: 我想要得到的是一个看起来像这样的字符串: 我可以使用以下代码行捕获URL: 也许regexp表达式需要一些更正,但是它工作正常,需要进一步测试。 因此,问题是如何保持正则表达式捕获表达式并仅添加创建链接所需的内容:catched string 预先感谢您的关注和

  • 目前我只是使用jQuery有一个复选框和一个文本,文本在复选框打勾后更改,但我正在尝试使其工作,以便可以单击框或文本,结果是更改文本和复选框? 有人能进一步帮助我吗?