Android TextView实现带链接文字事件监听的三种常用方式示例

作者:袖梨 2022-06-25
/**
 * TextView实现文字链接跳转功能
 * @description:
 * @author ldm
 * @date 2016-4-21 下午4:34:05
 */
publicclassTextViewLinkActextendsActivity {
  privateTextView tv_3;
  privateTextView tv_4;
  @Override
  protectedvoidonCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.link);
    setTextViewLink();
  }
  /**
   * 通过不同方式实现TextView中文字点击链接跳转功能
   *
   * @description:
   * @author ldm
   * @date 2016-4-21 下午4:24:13
   */
  privatevoidsetTextViewLink() {
    // 以Html格式href链接方式实现跳转
    tv_3 = (TextView) findViewById(R.id.text3);
    tv_3.setText(Html
        .fromHtml("text3: Constructed from HTML programmatically. Text with a "
            +"link "
            +"created in the Java source code using HTML."));
    tv_3.setMovementMethod(LinkMovementMethod.getInstance());
    // 通过SpannableString的setMovementMethod方法实现链接效果
    SpannableString ss =newSpannableString(
        "text4: Manually created spans. Click here to dial the phone.");
    ss.setSpan(newStyleSpan(Typeface.BOLD),0,30,
        Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
    ss.setSpan(newURLSpan("tel:4155551212"),31+6,31+10,
        Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
    tv_4 = (TextView) findViewById(R.id.text4);
    tv_4.setText(ss);
    tv_4.setMovementMethod(LinkMovementMethod.getInstance());
  }
}

布局文件



  
    
    
    
    
  

其中通过在而已代码中android:autoLink属性的选项目有:none(无链接效果),web(网页链接),email(发邮件),phone(打电话),map(定位)及all(默认全都自动链接)。

相关文章

精彩推荐