国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達(dá)式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務(wù)器之家 - 編程語言 - Android - Android中捕獲TTextView文本中的鏈接點(diǎn)擊事件方法

Android中捕獲TTextView文本中的鏈接點(diǎn)擊事件方法

2021-03-12 16:03Android開發(fā)網(wǎng) Android

這篇文章主要介紹了Android中捕獲TTextView文本中的鏈接點(diǎn)擊事件方法,本文給出了實(shí)現(xiàn)代碼和使用方法以及實(shí)現(xiàn)自己控制的方法,需要的朋友可以參考下

Android中的TTextView很強(qiáng)大,我們可以不僅可以設(shè)置純文本為其內(nèi)容,還可以設(shè)置包含網(wǎng)址和電子郵件地址的內(nèi)容,并且使得這些點(diǎn)擊可以點(diǎn)擊。但是我們可以捕獲并控制這些鏈接的點(diǎn)擊事件么,當(dāng)然是可以的。

本文將一個超級簡單的例子介紹一下如何實(shí)現(xiàn)在Android TextView 捕獲鏈接的點(diǎn)擊事件。

關(guān)鍵實(shí)現(xiàn)

實(shí)現(xiàn)原理就是將所有的URL設(shè)置成ClickSpan,然后在它的onClick事件中加入你想要的控制邏輯就可以了。

 

復(fù)制代碼 代碼如下:


private void setLinkClickable(final SpannableStringBuilder clickableHtmlBuilder,
      final URLSpan urlSpan) {
    int start = clickableHtmlBuilder.getSpanStart(urlSpan);
    int end = clickableHtmlBuilder.getSpanEnd(urlSpan);
    int flags = clickableHtmlBuilder.getSpanFlags(urlSpan);
    ClickableSpan clickableSpan = new ClickableSpan() {
          public void onClick(View view) {
            //Do something with URL here.
         
          }
    };
    clickableHtmlBuilder.setSpan(clickableSpan, start, end, flags);
}

 

private CharSequence getClickableHtml(String html) {
    Spanned spannedHtml = Html.fromHtml(html);
    SpannableStringBuilder clickableHtmlBuilder = new SpannableStringBuilder(spannedHtml);
    URLSpan[] urls = clickableHtmlBuilder.getSpans(0, spannedHtml.length(), URLSpan.class);
    for(final URLSpan span : urls) {
      setLinkClickable(clickableHtmlBuilder, span);
    }
    return clickableHtmlBuilder;
}

 

如何使用

 

復(fù)制代碼 代碼如下:

TextView myTextView = (TextView)findViewById(R.id.myTextView);
  String url = "This is a page with lots of URLs. <a href=\"http://jb51.net\">jb51.net</> " +
          "This left is a very good blog. There are so many great blogs there. You can find what" +
          "you want in that blog."
          + "The Next Link is <a href=\"http://www.google.com.hk\">Google HK</a>";
  myTextView.setText(getClickableHtml(url));

 

實(shí)現(xiàn)自己的控制

我們需要在ClickSpan的onClick方法中加入自己的控制邏輯,比如我們使用傲游瀏覽器打開點(diǎn)擊的鏈接。

 

復(fù)制代碼 代碼如下:

public void onClick(View view) {
  Log.i(LOGTAG, "onClick url=" + urlSpan.getURL() );
    Intent intent = new Intent(Intent.ACTION_VIEW);
  intent.setData(Uri.parse(urlSpan.getURL()));
  intent.setPackage("com.mx.browser");
  startActivity(intent);
}

 

提醒

不要忘了設(shè)置TextView的autoLink屬性。

 

復(fù)制代碼 代碼如下:

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/hello_world"
    android:id="@+id/myTextView"
    android:autoLink="web"
/>

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 亚洲一区二区三区蜜桃 | 91精品国产九九九久久久亚洲 | 日韩综合区 | 91网在线观看 | 伊人操操 | 日韩成人高清视频 | 99免费在线播放99久久免费 | 最近日本韩国高清免费观看 | 久久男人天堂 | 激情综合婷婷 | 亚洲精品一区中文字幕乱码 | 91污视频 | 日日夜夜香蕉 | 一级黄色片看看 | 久久爱综合 | 国产亚洲欧美一区 | 免费视频一区二区 | 精品久久久久久久久久久久久久 | 福利在线小视频 | 欧美a一级| 亚洲视频一区二区三区在线观看 | 色综合久久88色综合天天6 | 亚洲精品综合 | 亚洲福利影院 | 一区二区三区高清 | 欧美一级免费高清 | 久草在线 | 国产美女网站视频 | 色婷婷一区 | 亚洲一区二区免费视频 | 综合导航 | 亚洲一区二区三区 | 日韩一级 | 国产一区二区三区免费播放 | 欧美一级在线观看 | 中文av一区二区三区 | 91麻豆产精品久久久 | 亚洲综合色视频在线观看 | 免费看片www| 欧美狠狠 | 国产黄色电影 |