微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

android.text.util.Linkify.MatchFilter的实例源码

项目:tomdroid    文件LinkInternalSpan.java   
public static MatchFilter getNoteLinkMatchFilter(final SpannableStringBuilder noteContent,final LinkInternalSpan[] links) {

    return new MatchFilter() {

        public boolean acceptMatch(CharSequence s,int start,int end) {
            int spanstart,spanend;
            for(LinkInternalSpan link: links) {
                spanstart = noteContent.getSpanStart(link);
                spanend = noteContent.getSpanEnd(link);
                if(!(end <= spanstart || spanend <= start)) {
                    return false;
                }
            }
            return true;
        }
    };
}
项目:tomdroid    文件ViewNote.java   
private void showNote(boolean xml) {
    if(xml) {
        content.setText(note.getXmlContent());
        title.setText((CharSequence) note.getTitle());
        this.setTitle(this.getTitle() + " - XML");
        return;
    }
    LinkInternalSpan[] links = noteContent.getSpans(0,noteContent.length(),LinkInternalSpan.class);
    MatchFilter noteLinkMatchFilter = LinkInternalSpan.getNoteLinkMatchFilter(noteContent,links);

    // show the note (spannable makes the TextView able to output styled text)
    content.setText(noteContent,TextView.BufferType.SPANNABLE);

    // add links to stuff that is understood by Android except phone numbers because it's too aggressive
    // Todo this is SLOWWWW!!!!
    int linkFlags = 0;

    if(Preferences.getBoolean(Preferences.Key.LINK_EMAILS))
        linkFlags |= Linkify.EMAIL_ADDRESSES;
    if(Preferences.getBoolean(Preferences.Key.LINK_URLS))
        linkFlags |= Linkify.WEB_URLS;
    if(Preferences.getBoolean(Preferences.Key.LINK_ADDRESSES))
        linkFlags |= Linkify.MAP_ADDRESSES;

    Linkify.addLinks(content,linkFlags);

    // Custom phone number linkifier (fixes lp:512204)
    if(Preferences.getBoolean(Preferences.Key.LINK_PHOnes))
        Linkify.addLinks(content,LinkifyPhone.PHONE_PATTERN,"tel:",LinkifyPhone.sPhoneNumberMatchFilter,Linkify.sPhoneNumberTransformFilter);

    // This will create a link every time a note title is found in the text.
    // The pattern contains a very dumb (title1)|(title2) escaped correctly
    // Then we transform the url from the note name to the note id to avoid characters that mess up with the URI (ex: ?)
    if(Preferences.getBoolean(Preferences.Key.LINK_TITLES)) {
        Pattern pattern = NoteManager.buildNoteLinkifyPattern(this,note.getTitle());

        if(pattern != null) {
            Linkify.addLinks(
                content,pattern,Tomdroid.CONTENT_URI+"/",noteLinkMatchFilter,noteTitleTransformFilter
            );

            // content.setMovementMethod(LinkMovementMethod.getInstance());
        }
    }
    title.setText((CharSequence) note.getTitle());
}
项目:tomdroid    文件EditNote.java   
private void showNote(boolean xml) {
    if(xml) {

        formatBar.setVisibility(View.GONE);
        content.setText(note.getXmlContent());
        title.setText((CharSequence) note.getTitle());
        this.setTitle(this.getTitle() + " - XML");
        xmlOn = true;
        return;
    }

    LinkInternalSpan[] links = noteContent.getSpans(0,noteTitleTransformFilter
            );

            // content.setMovementMethod(LinkMovementMethod.getInstance());
        }
    }
    title.setText((CharSequence) note.getTitle());
}
项目:tomdroid    文件Tomdroid.java   
private void showNote(boolean xml) {

    if(xml) {
        content.setText(note.getXmlContent());
        title.setText((CharSequence) note.getTitle());
        this.setTitle(this.getTitle() + " - XML");
        return;
    }

    LinkInternalSpan[] links = noteContent.getSpans(0,TextView.BufferType.SPANNABLE);

    // add links to stuff that is understood by Android except phone numbers because it's too aggressive
    // Todo this is SLOWWWW!!!!

    int linkFlags = 0;

    if(Preferences.getBoolean(Preferences.Key.LINK_EMAILS))
        linkFlags |= Linkify.EMAIL_ADDRESSES;
    if(Preferences.getBoolean(Preferences.Key.LINK_URLS))
        linkFlags |= Linkify.WEB_URLS;
    if(Preferences.getBoolean(Preferences.Key.LINK_ADDRESSES))
        linkFlags |= Linkify.MAP_ADDRESSES;

    Linkify.addLinks(content,noteTitleTransformFilter
            );

            // content.setMovementMethod(LinkMovementMethod.getInstance());
        }
    }
    title.setText((CharSequence) note.getTitle());
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。