与TextView链接

时间:2016-07-02 06:52:33

标签: android textview textwatcher linkify

我想将Linkify与我的扩展TextView一起使用,但是如果我在覆盖的setText()方法中使用Linkify会因为无限循环而失败。

我找到了这样的解决方案,但它并不漂亮:

textView.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) {
                if(bypass){
                    bypass = false;
                    return;
                }
                bypass = true;
                if(!Linkify.addLinks(textView, Linkify.WEB_URLS | Linkify.EMAIL_ADDRESSES)){
                    Linkify.addLinks(textView, phoneMatcher, "tel:", null, Linkify.sPhoneNumberTransformFilter);
                }
            }

            @Override
            public void afterTextChanged(Editable s) {

            }
        });

有没有办法在TextView上使用Linkify而没有这样的解决方法?我希望我的扩展TextView会自动添加链接(如果有的话)。

1 个答案:

答案 0 :(得分:0)

找到合适的解决方案,使用

  

addLinks(Spannable s,Pattern p,               字符串方案,MatchFilter matchFilter,               TransformFilter transformFilter)

然后使用

设置spannable
  

setText(Spannable spannable)

方法。