每当我在 TextView 中使用 autoLink =“ all” 时,都无法正确地自动链接手机号码。它也会自动链接以前的数字(不是手机号码的文本中的数字)。
这是布局
<TextView
android:id="@+id/text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello World!"
android:autoLink="all"
android:textIsSelectable="true"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />
输出附在下面
如何避免该问题?
答案 0 :(得分:0)
如果我清楚地理解了您的问题,则可以使用 ClickableSpan 它还允许您在行下单击可单击的固定数量的字符来处理相同的单击。 在xml
中<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/_18sdp"
android:layout_marginRight="@dimen/_18sdp"
android:fontFamily="@font/lato_semibold"
android:paddingTop="@dimen/_15sdp"
android:textAlignment="center"
android:textColor="@color/colorBlack"
android:textSize="@dimen/_13sdp" />
在Java类
SpannableString ss = new SpannableString("Hello World8 123456789");
ClickableSpan clickableSpan = new ClickableSpan() {
@Override
public void onClick(View textView) {
// handle on click
}
@Override
public void updateDrawState(TextPaint ds) {
super.updateDrawState(ds);
}
};
ss.setSpan(clickableSpan, 12, 22, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
TextView textView = (TextView) findViewById(R.id.hello);
textView.setText(ss);
textView.setMovementMethod(LinkMovementMethod.getInstance());
textView.setHighlightColor(Color.TRANSPARENT);