Java 类android.text.util.Linkify 实例源码

项目:Forge    文件:GeneratorFragment.java   
/**
 * Taken from Stack Overflow - https://stackoverflow.com/a/17201376/6052295
 * Adds links to a HTML string
 *
 * @param html        the HTML string to add links to
 * @param linkifyMask the link type
 * @return The spannable text with clickable links
 */

public static Spannable linkifyHtml(String html, int linkifyMask) {
    Spanned text = fromHtml(fromHtml(html).toString());
    URLSpan[] currentSpans = text.getSpans(0, text.length(), URLSpan.class);

    SpannableString buffer = new SpannableString(text);
    Linkify.addLinks(buffer, linkifyMask);

    for (URLSpan span : currentSpans) {
        int end = text.getSpanEnd(span);
        int start = text.getSpanStart(span);
        buffer.setSpan(span, start, end, 0);
    }
    return buffer;
}
项目:ultrasonic    文件:ShareActivity.java   
private void displayShareInfo(final Share share)
{
    final TextView textView = new TextView(this);
    textView.setPadding(5, 5, 5, 5);

    final Spannable message = new SpannableString("Owner: " + share.getUsername() +
            "\nComments: " + ((share.getDescription() == null) ? "" : share.getDescription()) +
            "\nURL: " + share.getUrl() +
            "\nEntry Count: " + share.getEntries().size() +
            "\nVisit Count: " + share.getVisitCount() +
            ((share.getCreated() == null) ? "" : ("\nCreation Date: " + share.getCreated().replace('T', ' '))) +
            ((share.getLastVisited() == null) ? "" : ("\nLast Visited Date: " + share.getLastVisited().replace('T', ' '))) +
            ((share.getExpires() == null) ? "" : ("\nExpiration Date: " + share.getExpires().replace('T', ' '))));

    Linkify.addLinks(message, Linkify.WEB_URLS);
    textView.setText(message);
    textView.setMovementMethod(LinkMovementMethod.getInstance());

    new AlertDialog.Builder(this).setTitle("Share Details").setCancelable(true).setIcon(android.R.drawable.ic_dialog_info).setView(textView).show();
}
项目:ultrasonic    文件:SelectPlaylistActivity.java   
private void displayPlaylistInfo(final Playlist playlist)
{
    final TextView textView = new TextView(this);
    textView.setPadding(5, 5, 5, 5);

    final Spannable message = new SpannableString("Owner: " + playlist.getOwner() + "\nComments: " +
            ((playlist.getComment() == null) ? "" : playlist.getComment()) +
            "\nSong Count: " + playlist.getSongCount() +
            ((playlist.getPublic() == null) ? "" : ("\nPublic: " + playlist.getPublic()) + ((playlist.getCreated() == null) ? "" : ("\nCreation Date: " + playlist.getCreated().replace('T', ' ')))));

    Linkify.addLinks(message, Linkify.WEB_URLS);
    textView.setText(message);
    textView.setMovementMethod(LinkMovementMethod.getInstance());

    new AlertDialog.Builder(this).setTitle(playlist.getName()).setCancelable(true).setIcon(android.R.drawable.ic_dialog_info).setView(textView).show();
}
项目:yyox    文件:CustomTextView.java   
/**
 * 显示富文本消息
 *
 * @param textView
 * @param message
 */
public static void setCustomMessage(TextView textView, String message) {
    JSONObject jsonObject = SafeJson.parseObj(message);
    if (SafeJson.isContainKey(jsonObject, CustomField.TYPE)) {
        String type = SafeJson.safeGet(jsonObject, CustomField.TYPE);
        if (TextUtils.equals(CustomField.VIDEO, type)) {
            if (SafeJson.isContainKey(jsonObject, CustomField.VISITOR_URL)) {
                String url = SafeJson.safeGet(jsonObject, CustomField.VISITOR_URL);
                textView.setText(makeUrlWithHtmlHref(url, textView.getContext().getString(R.string.kf5_invite_video_chat)));
            } else {
                textView.setText(resolveTextWithHtmlTag(message));
            }
        } else {
            textView.setText(resolveTextWithHtmlTag(message));
        }
    } else {
        textView.setText(resolveTextWithHtmlTag(message));
    }
    dealCustomLink(textView);
    Linkify.addLinks(textView, Linkify.ALL);
    textView.setMovementMethod(new CustomLinkMovementMethod());
    dealCustomLink(textView);
}
项目:Android-Development    文件:PoiDetailsFragment.java   
private View inflateRowItem(String title, String value) {
    View view;
    LayoutInflater inflater = (LayoutInflater) getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    view = inflater.inflate(R.layout.detailed_poi_tagitem, null);

    //LinearLayout linearLayout = (LinearLayout) view.findViewById(R.id.rowContainer);
    TextView titleTextView = (TextView) view.findViewById(R.id.rowTitle);
    TextView valueTextView = (TextView) view.findViewById(R.id.rowValue);
    titleTextView.setText(title);
    valueTextView.setText(value);
    //Linking content
    if (title.toLowerCase().equals("email") || title.toLowerCase().equals("contact:email")) {
        Linkify.addLinks(valueTextView, Linkify.EMAIL_ADDRESSES);
        valueTextView.setLinksClickable(true);
    }
    if (title.toLowerCase().equals("website") || title.toLowerCase().equals("contact:website")) {
        Linkify.addLinks(valueTextView, Linkify.WEB_URLS);
        valueTextView.setLinksClickable(true);
    }
    if (title.toLowerCase().equals("phone") || title.toLowerCase().equals("phone:mobile") || title.toLowerCase().equals("contact:mobile") || title.toLowerCase().equals("contact:phone")) {
        Linkify.addLinks(valueTextView, Linkify.PHONE_NUMBERS);
        valueTextView.setLinksClickable(true);
    }
    return view;
}
项目:PeSanKita-android    文件:ConversationItem.java   
private void setInteractionState(MessageRecord messageRecord) {
  setSelected(batchSelected.contains(messageRecord));
  bodyText.setAutoLinkMask(batchSelected.isEmpty() ? Linkify.ALL : 0);

  if (mediaThumbnailStub.resolved()) {
    mediaThumbnailStub.get().setFocusable(!shouldInterceptClicks(messageRecord) && batchSelected.isEmpty());
    mediaThumbnailStub.get().setClickable(!shouldInterceptClicks(messageRecord) && batchSelected.isEmpty());
    mediaThumbnailStub.get().setLongClickable(batchSelected.isEmpty());
  }

  if (audioViewStub.resolved()) {
    audioViewStub.get().setFocusable(!shouldInterceptClicks(messageRecord) && batchSelected.isEmpty());
    audioViewStub.get().setClickable(batchSelected.isEmpty());
    audioViewStub.get().setEnabled(batchSelected.isEmpty());
  }
}
项目:airgram    文件:MessageObject.java   
public void generateLinkDescription() {
    if (linkDescription != null) {
        return;
    }
    if (messageOwner.media instanceof TLRPC.TL_messageMediaWebPage && messageOwner.media.webpage instanceof TLRPC.TL_webPage && messageOwner.media.webpage.description != null) {
        linkDescription = Spannable.Factory.getInstance().newSpannable(messageOwner.media.webpage.description);
        if (containsUrls(linkDescription)) {
            try {
                Linkify.addLinks((Spannable) linkDescription, Linkify.WEB_URLS);
            } catch (Exception e) {
                FileLog.e("tmessages", e);
            }
        }
        linkDescription = Emoji.replaceEmoji(linkDescription, textPaint.getFontMetricsInt(), AndroidUtilities.dp(20), false);
    }
}
项目:airgram    文件:MessageObject.java   
public void generateCaption() {
    if (caption != null) {
        return;
    }
    if (messageOwner.media != null && messageOwner.media.caption != null && messageOwner.media.caption.length() > 0) {
        caption = Emoji.replaceEmoji(messageOwner.media.caption, textPaint.getFontMetricsInt(), AndroidUtilities.dp(20), false);
        if (containsUrls(caption)) {
            try {
                Linkify.addLinks((Spannable) caption, Linkify.WEB_URLS | Linkify.PHONE_NUMBERS);
            } catch (Exception e) {
                FileLog.e("tmessages", e);
            }
            addUsernamesAndHashtags(caption, true);
        }
    }
}
项目:stay-awake-app    文件:MainActivity.java   
private void formatMessages() {
    // Add actual minutes to string template.
    TextView textView1 = (TextView) findViewById(R.id.text_introduction_content);
    final long hours = TimeUnit.SECONDS.toMinutes(MyTileService.MAX_TIME_SEC);
    textView1.setText(getString(R.string.introduction_body, hours));

    // Linkify github link.
    TextView textview2 = (TextView) findViewById(R.id.text_opensource_body);
    LinkifyCompat.addLinks(textview2, Linkify.WEB_URLS);

    // Spanning color on textviews.
    applySpan((TextView) findViewById(R.id.text_install_body_1),
              R.id.text_install_body_1,
              "Step 1");

    applySpan((TextView) findViewById(R.id.text_install_body_2),
              R.id.text_install_body_2,
              "Step 2");

    applySpan((TextView) findViewById(R.id.text_install_body_3),
              R.id.text_install_body_3,
              "Step 3");

}
项目:XSnow    文件:MainActivity.java   
private void displayAboutDialog() {
    final int paddingSizeDp = 5;
    final float scale = getResources().getDisplayMetrics().density;
    final int dpAsPixels = (int) (paddingSizeDp * scale + 0.5f);

    final TextView textView = new TextView(this);
    final SpannableString text = new SpannableString(getString(R.string.about_dialog_text));

    textView.setText(text);
    textView.setAutoLinkMask(RESULT_OK);
    textView.setMovementMethod(LinkMovementMethod.getInstance());
    textView.setPadding(dpAsPixels, dpAsPixels, dpAsPixels, dpAsPixels);

    Linkify.addLinks(text, Linkify.ALL);
    new AlertDialog.Builder(this)
            .setTitle(R.string.menu_about)
            .setCancelable(false)
            .setPositiveButton(android.R.string.ok, null)
            .setView(textView)
            .show();
}
项目:chromium-for-android-56-debug-video    文件:PhysicalWebDiagnosticsPage.java   
@Override
protected void initialize(final Activity activity, Tab tab) {
    Resources resources = activity.getResources();
    mSuccessColor = colorToHexValue(ApiCompatibilityUtils.getColor(resources,
            R.color.physical_web_diags_success_color));
    mFailureColor = colorToHexValue(ApiCompatibilityUtils.getColor(resources,
            R.color.physical_web_diags_failure_color));
    mIndeterminateColor = colorToHexValue(ApiCompatibilityUtils.getColor(resources,
            R.color.physical_web_diags_indeterminate_color));

    LayoutInflater inflater = LayoutInflater.from(activity);
    mPageView = inflater.inflate(R.layout.physical_web_diagnostics, null);

    mLaunchButton = (Button) mPageView.findViewById(R.id.physical_web_launch);
    mLaunchButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            activity.startActivity(createListUrlsIntent());
        }
    });

    mDiagnosticsText = (TextView) mPageView.findViewById(R.id.physical_web_diagnostics_text);
    mDiagnosticsText.setAutoLinkMask(Linkify.WEB_URLS);
    mDiagnosticsText.setText(Html.fromHtml(createDiagnosticsReportHtml()));
}
项目:xifan    文件:PatternUtils.java   
private static void linkifyUsers(Spannable spannable, final Map<String, String> userMap) {
    Linkify.MatchFilter filter = new Linkify.MatchFilter() {
        @Override
        public final boolean acceptMatch(final CharSequence s, final int start, final int end) {
            String name = s.subSequence(start + 1, end).toString().trim();
            return userMap.containsKey(name);
        }
    };
    Linkify.TransformFilter transformFilter = new Linkify.TransformFilter() {
        @Override
        public String transformUrl(Matcher matcher, String value) {
            String userName = value.subSequence(1, value.length()).toString().trim();
            String userId = userMap.get(userName);
            return userId;
        }
    };

    Linkify.addLinks(spannable, PATTERN_AT, SCHEME_AT, filter, transformFilter);
}
项目:Obd2-Tracker    文件:GeneratedAccountIdDialog.java   
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {

    final TextView textView = new TextView(getActivity());
    final SpannableString spannableMsg = new SpannableString("See your real time car data at page " + Config.WWW_APP_URL + "/pages/index.html?account=TODO");

    Linkify.addLinks(spannableMsg, Linkify.WEB_URLS);
    textView.setText(spannableMsg);
    textView.setMovementMethod(LinkMovementMethod.getInstance());
    textView.setPadding(20,20,20,20);

    AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
    builder.setTitle("Your Account")
            .setView(textView)
            .setPositiveButton(android.R.string.ok, null);

    return builder.create();
}
项目:PlusGram    文件:MessageObject.java   
public void generateLinkDescription() {
    if (linkDescription != null) {
        return;
    }
    if (messageOwner.media instanceof TLRPC.TL_messageMediaWebPage && messageOwner.media.webpage instanceof TLRPC.TL_webPage && messageOwner.media.webpage.description != null) {
        linkDescription = Spannable.Factory.getInstance().newSpannable(messageOwner.media.webpage.description);
    } else if (messageOwner.media instanceof TLRPC.TL_messageMediaGame && messageOwner.media.game.description != null) {
        linkDescription = Spannable.Factory.getInstance().newSpannable(messageOwner.media.game.description);
    }
    if (linkDescription != null) {
        if (containsUrls(linkDescription)) {
            try {
                Linkify.addLinks((Spannable) linkDescription, Linkify.WEB_URLS);
            } catch (Exception e) {
                FileLog.e("tmessages", e);
            }
        }
        linkDescription = Emoji.replaceEmoji(linkDescription, textPaint.getFontMetricsInt(), AndroidUtilities.dp(20), false);
    }
}
项目:PlusGram    文件:MessageObject.java   
public void generateCaption() {
    if (caption != null) {
        return;
    }
    if (messageOwner.media != null && messageOwner.media.caption != null && messageOwner.media.caption.length() > 0) {
        caption = Emoji.replaceEmoji(messageOwner.media.caption, textPaint.getFontMetricsInt(), AndroidUtilities.dp(20), false);
        if (containsUrls(caption)) {
            try {
                Linkify.addLinks((Spannable) caption, Linkify.WEB_URLS | Linkify.PHONE_NUMBERS);
            } catch (Exception e) {
                FileLog.e("tmessages", e);
            }
            addUsernamesAndHashtags(caption, true);
        }
    }
}
项目:WeChatDemo    文件:LinkifyUtil.java   
/**
 * 添加自定义超链接
 */
public static void addCustomLink(TextView textView) {
    // @用户:
    Pattern pattern = Pattern.compile("\\@([A-Za-z0-9\u4E00-\u9FA5]+)\\.?");
    // http://www.qq.com/path?uid=1&username=xx
    String scheme = "weibo://user?uid=";

    // 匹配过滤器
    Linkify.MatchFilter matchFilter = new Linkify.MatchFilter() {
        @Override
        public boolean acceptMatch(CharSequence s, int start, int end) {
            String text = s.subSequence(start, end).toString();
            // System.out.println("----text: " + text);
            if (text.endsWith(".")) { // 邮箱,不需要匹配
                return false;
            } else {
                return true;    // 返回true会显示为超链接
            }
        }
    };
    Linkify.TransformFilter transformFilter = null;
    Linkify.addLinks(textView, pattern, scheme, matchFilter, transformFilter);
}
项目:WeChatDemo    文件:LinkifyUtil.java   
public static void addCustomLink2(TextView textView) {
    // @用户:
    Pattern pattern = Pattern.compile("\\#([A-Za-z0-9\u4E00-\u9FA5]+)\\#");
    // http://www.qq.com/path?uid=1&username=xx
    String scheme = "weibo://topic?uid=";
    // 匹配过滤器
    Linkify.MatchFilter matchFilter = new Linkify.MatchFilter() {
        @Override
        public boolean acceptMatch(CharSequence s, int start, int end) {
            String text = s.subSequence(start, end).toString();
            System.out.println("----text: " + text);
            return true;
        }
    };
    Linkify.TransformFilter transformFilter = new Linkify.TransformFilter() {
        @Override
        public String transformUrl(Matcher match, String url) {
            return match.group(1);
        }
    };
    Linkify.addLinks(textView, pattern, scheme, matchFilter, transformFilter);
}
项目:Android_watch_magpie    文件:MainActivity.java   
private void showAboutDialog() {
    // Transform text into URL link
    View aboutView = getLayoutInflater().inflate(R.layout.dialog_about, null, false);
    TextView txtView = (TextView) aboutView.findViewById(R.id.aboutTxtView);
    Pattern pattern = Pattern.compile("here");
    Linkify.addLinks(txtView, pattern, getString(R.string.magpie_url));
    // Create and show the dialog
    AlertDialog.Builder builder = new AlertDialog.Builder(
            new ContextThemeWrapper(
                    this,
                    android.R.style.Theme_Material_Light_NoActionBar_Fullscreen));
    builder.setTitle(getString(R.string.about_app))
            .setView(aboutView)
            .create()
            .show();
}
项目:LibVNCAndroid    文件:ActivityTabs.java   
/**
 * @brief Shows the dialog to indicate about info
 * @return The new dialog
 * @details Shows the dialog to indicate about info
 */
private Dialog createAboutDialog()
 {
    //necesario para poder clicar en los links
    final TextView message = new TextView(this);
    final SpannableString s = 
               new SpannableString(this.getText(R.string.about_message));
  Linkify.addLinks(s, Linkify.WEB_URLS);
  message.setText(s);
  message.setMovementMethod(LinkMovementMethod.getInstance());

  return new AlertDialog.Builder(this)
  .setTitle(R.string.about_title)
  .setView(message)
  .setPositiveButton(R.string.about_ok,
   new DialogInterface.OnClickListener() {

    @Override
    public void onClick(DialogInterface dialog, int which) {
     // Auto-generated method stub

    }
   }
    )
  .show();
 }
项目:droidfan    文件:StatusUtils.java   
public static void setStatus(final TextView textView, final String text) {
        final String htmlText = text + " ";
//        LogUtil.v(TAG, "setStatus:htmlText:" + htmlText);
        final HashMap<String, String> mentions = findMentions(htmlText);
//        LogUtil.v(TAG, "setStatus:mentions:" + mentions);
        final String plainText = Html.fromHtml(htmlText).toString();
//        LogUtil.v(TAG, "setStatus:plainText:" + plainText);
        final SpannableString spannable = new SpannableString(plainText);
        Linkify.addLinks(spannable, Linkify.WEB_URLS);
        linkifyUsers(spannable, mentions);
        linkifyTags(spannable);
        removeUnderLines(spannable);
//        LogUtil.v(TAG, "setStatus:finalText:" + spannable);
        textView.setText(spannable, BufferType.SPANNABLE);
        textView.setMovementMethod(LinkMovementMethod.getInstance());
    }
项目:droidfan    文件:StatusUtils.java   
public static void setItemStatus(final TextView textView, final String text) {
    final String htmlText = text + " ";
    final List<String> highlightWords = findHighlightWords(htmlText);
    final String plainText = Html.fromHtml(htmlText).toString();
    final SpannableString spannable = new SpannableString(plainText);
    Linkify.addLinks(spannable, Linkify.WEB_URLS);
    final Matcher m = PATTERN_USER.matcher(spannable);
    while (m.find()) {
        int start = m.start(1);
        int end = m.end(1);
        if (start >= 0 && start < end) {
            spannable.setSpan(new ForegroundColorSpan(AppContext.getContext().getResources().getColor(R.color.colorPrimary)), start, end,
                    Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
        }
    }
    linkifyTags(spannable);
    removeUnderLines(spannable);
    applyHighlightSpan(spannable, highlightWords);
    textView.setText(spannable, BufferType.SPANNABLE);
}
项目:Paper-Tales    文件:WallActivity.java   
@Override
public CharSequence getTransformation(CharSequence src, View view) {
    if (view instanceof TextView) {
        TextView textView = (TextView) view;
        Linkify.addLinks(textView, Linkify.WEB_URLS);

        if (textView.getText() != null && textView.getText() instanceof Spannable) {
            Spannable text = (Spannable) textView.getText();
            URLSpan[] spans = text.getSpans(0, textView.length(), URLSpan.class);
            for (int i = spans.length - 1; i >= 0; i--) {
                URLSpan oldSpan = spans[i];
                int start = text.getSpanStart(oldSpan), end = text.getSpanEnd(oldSpan);
                String url = oldSpan.getURL();

                text.removeSpan(oldSpan);
                text.setSpan(new CustomTabsURLSpan(url), start, end, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
            }
            return text;
        }
    }
    return src;
}
项目:Mach3Pendant    文件:Mach3PendantActivity.java   
private void showTitlesDialog() {

        String aboutTitle = String.format("About %s", getString(R.string.app_name));
        String versionString = String.format("Version: %s", getString(R.string.version));
        String aboutText = getString(R.string.about);

        final TextView message = new TextView(this);
        final SpannableString s = new SpannableString(aboutText);
        message.setPadding(5, 5, 5, 5);
        message.setText(versionString + "\n\n" + s);
        Linkify.addLinks(message, Linkify.ALL);

        new AlertDialog.Builder(this).
                setTitle(aboutTitle).
                setCancelable(true).
                setIcon(R.drawable.icon).
                setPositiveButton(this.getString(android.R.string.ok), null).
                setView(message).create().show();
    }
项目:BLE    文件:MainActivity.java   
/**
 * 显示项目信息
 */
private void displayAboutDialog() {
    final int paddingSizeDp = 5;
    final float scale = getResources().getDisplayMetrics().density;
    final int dpAsPixels = (int) (paddingSizeDp * scale + 0.5f);

    final TextView textView = new TextView(this);
    final SpannableString text = new SpannableString(getString(R.string.about_dialog_text));

    textView.setText(text);
    textView.setAutoLinkMask(RESULT_OK);
    textView.setMovementMethod(LinkMovementMethod.getInstance());
    textView.setPadding(dpAsPixels, dpAsPixels, dpAsPixels, dpAsPixels);

    Linkify.addLinks(text, Linkify.ALL);
    new AlertDialog.Builder(this).setTitle(R.string.menu_about).setCancelable(false).setPositiveButton(android.R
            .string.ok, null)
            .setView(textView).show();
}
项目:talk-android    文件:MessageFormatter.java   
public static Spannable formatURLSpan(Spannable s) {
    Linkify.addLinks(s, Linkify.WEB_URLS);
    URLSpan[] urlSpans = s.getSpans(0, s.length(), URLSpan.class);
    for (URLSpan urlSpan : urlSpans) {
        final String url = urlSpan.getURL();
        final Matcher m = chinesePattern.matcher(url);
        if (m.find()) {
            s.removeSpan(urlSpan);
            continue;
        }
        int start = s.getSpanStart(urlSpan);
        int end = s.getSpanEnd(urlSpan);
        s.removeSpan(urlSpan);
        s.setSpan(new TalkURLSpan(urlSpan.getURL(), ThemeUtil.getThemeColor(MainApp.CONTEXT.
                        getResources(), BizLogic.getTeamColor())), start, end,
                Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
    }
    return s;
}
项目:Textoo    文件:ConfiguratorImplTest.java   
public void testLnkifyPattern1_TransformFilter2() {
    String text = inputText1 + inputText2;
    Pattern pattern = Pattern.compile("CA");
    Linkify.TransformFilter transformFilter = new Linkify.TransformFilter() {
        @Override
        public String transformUrl(Matcher match, String url) {
            return url + "/" + url;
        }
    };
    C1 config = createConfigurator(text);
    T2 result = config
            .linkify(pattern, "http://www.google.ie/search?q=", null, transformFilter)
            .apply();
    assertEquals(text, getText(result));
    Object[] spans = getSpans(result);
    assertEquals(2, spans.length);
    Spanned spanned = toSpanned(result);
    assertURLSpan(spanned, spans[0], 162, 164, 33, "http://www.google.ie/search?q=CA/CA");
    assertURLSpan(spanned, spans[1], 351, 353, 33, "http://www.google.ie/search?q=CA/CA");
}
项目:TaskApp    文件:CommentsController.java   
/** Helper method to set the contents and visibility of each field */
private void bindView(View view, NoteOrUpdate item) {
    // name
    final TextView nameView = (TextView)view.findViewById(R.id.title); {
        nameView.setText(item.title);
        Linkify.addLinks(nameView, Linkify.ALL);
    }

    // date
    final TextView date = (TextView)view.findViewById(R.id.date); {
        CharSequence dateString = DateUtils.getRelativeTimeSpanString(item.createdAt,
                DateUtilities.now(), DateUtils.MINUTE_IN_MILLIS,
                DateUtils.FORMAT_ABBREV_RELATIVE);
        date.setText(dateString);
    }

    // picture
    final ImageView commentPictureView = (ImageView)view.findViewById(R.id.comment_picture);
    setupImagePopupForCommentView(view, commentPictureView, item.commentBitmap, activity);
}
项目:Diccionario    文件:MainActivity.java   
@Override
public void showAboutDialog() {

    final SpannableString spannableString = new SpannableString(getString(R.string.about_msg));
    Linkify.addLinks(spannableString, Linkify.ALL);

    final AlertDialog aboutDialog = new AlertDialog.Builder(this)
            .setPositiveButton(android.R.string.ok, null)
            .setTitle(getString(R.string.app_name) + " " + getString(R.string.app_version))
            .setMessage(spannableString)
            .create();

    aboutDialog.show();

    ((TextView) aboutDialog.findViewById(android.R.id.message)).setMovementMethod(LinkMovementMethod.getInstance());
}
项目:Audinaut    文件:DetailsAdapter.java   
@Override
public View getView(int position, View convertView, ViewGroup parent){
    View view;
    if(convertView == null) {
        view = LayoutInflater.from(getContext()).inflate(R.layout.details_item, null);
    } else {
        view = convertView;
    }

    TextView nameView = (TextView) view.findViewById(R.id.detail_name);
    TextView detailsView = (TextView) view.findViewById(R.id.detail_value);

    nameView.setText(headers.get(position));

    detailsView.setText(details.get(position));
    Linkify.addLinks(detailsView, Linkify.WEB_URLS | Linkify.EMAIL_ADDRESSES);

    return view;
}
项目:AndroidChromium    文件:PhysicalWebDiagnosticsPage.java   
@Override
protected void initialize(final Activity activity, Tab tab) {
    Resources resources = activity.getResources();
    mSuccessColor = colorToHexValue(ApiCompatibilityUtils.getColor(resources,
            R.color.physical_web_diags_success_color));
    mFailureColor = colorToHexValue(ApiCompatibilityUtils.getColor(resources,
            R.color.physical_web_diags_failure_color));
    mIndeterminateColor = colorToHexValue(ApiCompatibilityUtils.getColor(resources,
            R.color.physical_web_diags_indeterminate_color));

    LayoutInflater inflater = LayoutInflater.from(activity);
    mPageView = inflater.inflate(R.layout.physical_web_diagnostics, null);

    mLaunchButton = (Button) mPageView.findViewById(R.id.physical_web_launch);
    mLaunchButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            activity.startActivity(createListUrlsIntent());
        }
    });

    mDiagnosticsText = (TextView) mPageView.findViewById(R.id.physical_web_diagnostics_text);
    mDiagnosticsText.setAutoLinkMask(Linkify.WEB_URLS);
    mDiagnosticsText.setText(Html.fromHtml(createDiagnosticsReportHtml()));
}
项目:Textoo    文件:ConfiguratorImplTest.java   
public void testLinkifyPattern_MatchFilter1() {
    String text = inputText1 + inputText2;
    Pattern pattern = Pattern.compile("CA");
    Linkify.MatchFilter matchFilter = new Linkify.MatchFilter() {
        @Override
        public boolean acceptMatch(CharSequence cs, int start, int end) {
            return start > 162;
        }
    };
    C1 config = createConfigurator(text);
    T2 result = config
            .linkify(pattern, "http://www.google.ie/search?q=", matchFilter, null)
            .apply();
    assertEquals(text, getText(result));
    Object[] spans = getSpans(result);
    assertEquals(1, spans.length);
    Spanned spanned = toSpanned(result);
    assertURLSpan(spanned, spans[0], 351, 353, 33, "http://www.google.ie/search?q=CA");
}
项目:Textoo    文件:ConfiguratorImplTest.java   
public void testLnkifyPattern1_TransformFilter1() {
    String text = inputText1;
    Pattern pattern = Pattern.compile("CA");
    Linkify.TransformFilter transformFilter = new Linkify.TransformFilter() {
        @Override
        public String transformUrl(Matcher match, String url) {
            return url + "/" + url;
        }
    };
    C1 config = createConfigurator(text);
    T2 result = config
            .linkify(pattern, "http://www.google.ie/search?q=", null, transformFilter)
            .apply();
    assertEquals(text, getText(result));
    Object[] spans = getSpans(result);
    assertEquals(1, spans.length);
    Spanned spanned = toSpanned(result);
    assertURLSpan(spanned, spans[0], 162, 164, 33, "http://www.google.ie/search?q=CA/CA");

}
项目:easyweather    文件:AboutFragment.java   
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    // Inflate the layout for this fragment
    getActivity().setTheme(R.style.DayTheme);
    if (MyApplication.nightMode2()) {
        initNightView(R.layout.night_mode_overlay);
    }

    View view = inflater.inflate(R.layout.fragment_about, container, false);
    TextView tv = (TextView) view.findViewById(R.id.link);
    String textStr = "https://github.com/byhieg/easyweather";
    tv.setAutoLinkMask(Linkify.WEB_URLS);
    tv.setText(textStr);
    Spannable s = (Spannable) tv.getText();
    s.setSpan(new UnderlineSpan() {
        @Override
        public void updateDrawState(TextPaint ds) {
            ds.setColor(ds.linkColor);
            ds.setUnderlineText(false);
        }
    }, 0, textStr.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
    return view;
}
项目:Better-Link-Movement-Method    文件:MainActivity.java   
@Override
protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main);

  // Add links to all TextViews.
  BetterLinkMovementMethod.linkify(Linkify.ALL, this)
      .setOnLinkClickListener(urlClickListener)
      .setOnLinkLongClickListener(longClickListener);

  TextView wayneTowerIntroView = findViewById(R.id.wayne_tower_intro);
  wayneTowerIntroView.setText(Html.fromHtml(getString(R.string.bettermovementmethod_dummy_text_long)));
  BetterLinkMovementMethod.linkifyHtml(wayneTowerIntroView)
      .setOnLinkClickListener(urlClickListener)
      .setOnLinkLongClickListener(longClickListener);
}
项目:OldDriver-master    文件:HtmlUtils.java   
private static SpannableStringBuilder linkifyPlainLinks(CharSequence input,
                                               ColorStateList linkTextColor,
                                       @ColorInt int linkHighlightColor) {
    final SpannableString plainLinks = new SpannableString(input); // copy of input
    Linkify.addLinks(plainLinks, Linkify.WEB_URLS);

    final URLSpan[] urlSpans = plainLinks.getSpans(0, plainLinks.length(), URLSpan.class);

    // add any plain links to the output
    final SpannableStringBuilder ssb = new SpannableStringBuilder(input);
    for (URLSpan urlSpan : urlSpans) {
        ssb.setSpan(new TouchableUrlSpan(urlSpan.getURL(), linkTextColor, linkHighlightColor),
                plainLinks.getSpanStart(urlSpan),
                plainLinks.getSpanEnd(urlSpan),
                Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
    }

    return ssb;
}
项目:simpleirc    文件:MessageListAdapter.java   
/**
 * Get item view for the given position
 *
 * @param position
 * @param convertView
 * @param parent
 * @return
 */
@Override
public View getView(int position, View convertView, ViewGroup parent) {

  TextView view = (TextView)convertView;
  if( view == null ) {
    view = new TextView(parent.getContext());
    view.setAutoLinkMask(Linkify.ALL);
    view.setLinksClickable(true);
    view.setTypeface(Typeface.MONOSPACE);
  }

  view = getItem(position).render(view);
  view.setTextSize(_settings.getFontSize());

  return view;
}
项目:BeMusic    文件:MainActivity.java   
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
    final int id = item.getItemId();
    if (id == R.id.action_github) {
        Intents.openUrl(MainActivity.this, "https://github.com/boybeak/BeMusic");
    } else if (id == R.id.action_star_me) {
        Intents.viewMyAppOnStore(MainActivity.this);
    } else if (id == R.id.action_help) {
        final String message = getString(R.string.text_help);
        TextView messageTv = new TextView(MainActivity.this);
        final int padding = (int)(getResources().getDisplayMetrics().density * 24);
        messageTv.setPadding(padding, padding, padding, padding);
        messageTv.setAutoLinkMask(Linkify.WEB_URLS);
        messageTv.setText(message);

        new AlertDialog.Builder(MainActivity.this)
                .setTitle(R.string.title_menu_help)
                .setView(messageTv)
                .setPositiveButton(android.R.string.ok, null)
                .show();
    }
    mDrawerLayout.closeDrawers();
    return true;
}
项目:urdu-font-comparator-app    文件:Utils.java   
private static void createAndShowDialog(Context context, String title,
                                        SpannableString message, boolean showOkButton) {

    Linkify.addLinks(message, Patterns.WEB_URL, null, new Linkify.MatchFilter() {
        @Override
        public boolean acceptMatch(CharSequence seq, int start, int end) {
            return Linkify.sUrlMatchFilter.acceptMatch(seq, start, end);
        }
    }, null);

    final Dialog dialog = new LovelyInfoDialog(context)
            .setTopColorRes(R.color.colorPrimaryLight)
            .setTitle(title)
            .setIcon(R.drawable.ic_info_outline)
            .setMessage(message)
            .show();

    TextView tvMessage = (TextView) dialog.findViewById(R.id.ld_message);
    if (tvMessage != null) {
        tvMessage.setMovementMethod(LinkMovementMethod.getInstance());
        tvMessage.setLinkTextColor(ContextCompat.getColor(context, R.color.blue));
    }

    if (showOkButton) {
        Button btnOk = (Button) dialog.findViewById(R.id.ld_btn_confirm);
        if (btnOk != null) {
            btnOk.setText(R.string.button_ok);
            btnOk.setTextColor(ContextCompat.getColor(context, R.color.colorPrimaryDark));
        }
    }
}
项目:Forge    文件:GeneratorFragment.java   
@Override
public void loadEmail(EmailMessage email) {
    if (emailShown) {
        // If there is an email dialog shown
        // Update the dialog's body text
        TextView body = emailDialog.findViewById(R.id.body);
        // Hide the progress bar, show the body text
        emailDialog.findViewById(R.id.body_loading).setVisibility(View.GONE);
        body.setVisibility(View.VISIBLE);
        // Make the links clickable
        body.setText(linkifyHtml(email.getBody(), Linkify.WEB_URLS));
        body.setMovementMethod(LinkMovementMethod.getInstance());
    }
}
项目:yyox    文件:FeedBackDetailAdapter.java   
void bindData(Context context, Comment details) {
    CustomTextView.stripUnderlines(context, tvContent, details.getContent(), Linkify.WEB_URLS | Linkify.EMAIL_ADDRESSES);
    tvContent.setOnLongClickListener(new CopyTextLongClickListener(context, details.getContent()));
    tvDate.setText(Utils.getAllTime(details.getCreatedAt()));
    tvName.setText(details.getAuthorName());
    if (details.getAttachmentList() != null && details.getAttachmentList().size() > 0) {
        ImageAdapter adapter = new ImageAdapter(context, details.getAttachmentList());
        mGridView.setVisibility(View.VISIBLE);
        mGridView.setAdapter(adapter);
        mGridView.setOnItemClickListener(new AttachmentItemClickListener(details.getAttachmentList(), context));
        mGridView.setOnItemLongClickListener(new AttachmentItemLongClickListener(details.getAttachmentList(), context));
    } else {
        mGridView.setVisibility(View.GONE);
    }
    switch (details.getMessageStatus()) {
        case SUCCESS:
            mProgressBar.setVisibility(View.INVISIBLE);
            failedImageView.setVisibility(View.INVISIBLE);
            break;
        case SENDING:
            mProgressBar.setVisibility(View.VISIBLE);
            failedImageView.setVisibility(View.INVISIBLE);
            break;
        case FAILED:
            mProgressBar.setVisibility(View.INVISIBLE);
            failedImageView.setVisibility(View.VISIBLE);
            break;
        default:
            break;
    }
}