Android TextView自动链接修改手机号码检测?

时间:2016-09-29 07:50:10

标签: android

有没有办法改变autoLink TextView检测电话号码的方式?

事情是,它很好地检测国际格式,例如+49123456789,但它在本地格式化的数字上失败,如0699777666555(没有前面的“+”字符)。

我们也需要提供这些号码。

TextView设置为autoLink="all"

   <TextView
        android:id="@+id/chat_message"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        ... some other settings ...
        android:autoLink="all"
        android:linksClickable="true"
        android:textColorLink="@color/darkblue"
        android:textColor="@color/black"/>

我们有内部号码(如5532)和本地电话号码,没有任何前缀,如12345678.如果它们也可以突出显示,没有任何前缀,或者至少没有太多编码,那就太棒了。

对此有何解决方案? 提前谢谢!

1 个答案:

答案 0 :(得分:1)

尝试以编程方式执行此操作:

public class AutoLinkifyTextView extends TextView {

    public AutoLinkifyTextView(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    public AutoLinkifyTextView(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
    }

    @Override
    public void setText(String text) {
        super.setText(text);
        parseLinks();
    }

    @Override
    public void setText(int stringRes) {
        super.setText(stringRes);
        parseLinks();
    }

    private void parseLinks() {
        Linkify.addLinks(this, Linkify.ALL);
    }

}

然后使用AutoLinkifyTextView代替TextView