Android EditText中的多行文本,带链接,可单击和可编辑
我正在使用多行EditText视图,它可以在输入中包含webUrl。为此,我使用Android EditText中的多行文本,带链接,可单击和可编辑,android,android-edittext,linkmovementmethod,Android,Android Edittext,Linkmovementmethod,我正在使用多行EditText视图,它可以在输入中包含webUrl。为此,我使用LinkMovementMethod使编辑文本中的链接可单击 我有和问题相同的问题,但我也有多行文字 问题在于: 如果字符串的最后一部分是链接,单击任意位置将打开该链接 扩展名: 当我在EditText的当前区域中单击时,它将是可编辑的。 例如: XML布局: <EditText android:id="@+id/description" android:layou
LinkMovementMethod
使编辑文本中的链接可单击
我有和问题相同的问题,但我也有多行文字
问题在于:
如果字符串的最后一部分是链接,单击任意位置将打开该链接
扩展名:
当我在EditText的当前区域中单击时,它将是可编辑的。
例如:
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" />
暂时我意识到了LongClick的反应,但我觉得这个解决方案很尴尬,我想让它变得更好 代码示例:
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);
}
};
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;
}
});