最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Android中捕獲TTextView文本中的鏈接點擊事件方法

 更新時間:2015年01月19日 10:38:48   投稿:junjie  
這篇文章主要介紹了Android中捕獲TTextView文本中的鏈接點擊事件方法,本文給出了實現(xiàn)代碼和使用方法以及實現(xiàn)自己控制的方法,需要的朋友可以參考下

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

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

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

實現(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));

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

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

復(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"
/>

相關(guān)文章

  • Android實現(xiàn)炫酷播放效果

    Android實現(xiàn)炫酷播放效果

    這篇文章主要為大家詳細(xì)介紹了Android實現(xiàn)炫酷播放效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-08-08
  • Android編程實現(xiàn)圓角邊框布局效果的方法

    Android編程實現(xiàn)圓角邊框布局效果的方法

    這篇文章主要介紹了Android編程實現(xiàn)圓角邊框布局效果的方法,結(jié)合實例形式分析了Android TableLayout布局的相關(guān)屬性操作與圓角邊框?qū)崿F(xiàn)技巧,需要的朋友可以參考下
    2017-06-06
  • Android 將 android view 的位置設(shè)為右下角的解決方法

    Android 將 android view 的位置設(shè)為右下角的解決方法

    Android 將 android view 的位置設(shè)為右下角的解決方法,需要的朋友可以參考一下
    2013-05-05
  • Android仿QQ、微信聊天界面長按提示框效果

    Android仿QQ、微信聊天界面長按提示框效果

    最近在工作項目中要實現(xiàn)一個長按提示 “復(fù)制” 的功能,類似于QQ、微信聊天界面長按提示框效果,本來想偷懶在網(wǎng)上找個開源的項目用,但是看了好幾個都不是很滿意,所以就打算按照自己的思路來實現(xiàn)一個。下面分享給大家,有需要的朋友們可以參考借鑒。
    2016-11-11
  • RecyclerView實現(xiàn)抖音縱向滾動ViewPager效果

    RecyclerView實現(xiàn)抖音縱向滾動ViewPager效果

    這篇文章主要為大家詳細(xì)介紹了RecyclerView實現(xiàn)抖音縱向滾動ViewPager效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-07-07
  • Android開發(fā)學(xué)習(xí)路線圖

    Android開發(fā)學(xué)習(xí)路線圖

    這篇文章主要介紹了Android開發(fā)學(xué)習(xí)路線圖,本文從基礎(chǔ)、入門、進(jìn)階、高級等4個方面鋪開學(xué)習(xí)路線圖,需要的朋友可以參考下
    2015-04-04
  • Action獲取請求參數(shù)的三種方式

    Action獲取請求參數(shù)的三種方式

    這篇文章主要介紹了Action獲取請求參數(shù)的三種方式的,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2016-06-06
  • Android設(shè)置控件陰影的三種方法

    Android設(shè)置控件陰影的三種方法

    這篇文章主要為大家詳細(xì)介紹了Android設(shè)置控件陰影的三種方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-11-11
  • Android識別NFC芯片制造商的方法

    Android識別NFC芯片制造商的方法

    這篇文章介紹了Android識別NFC芯片制造商的方法,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-11-11
  • SQLSERVER實現(xiàn)更改表名,更改列名,更改約束代碼

    SQLSERVER實現(xiàn)更改表名,更改列名,更改約束代碼

    這篇文章主要介紹了SQLSERVER實現(xiàn)更改表名,更改列名,更改約束代碼的相關(guān)資料,需要的朋友可以參考下
    2016-03-03

最新評論

宁德市| 历史| 景谷| 迭部县| 中西区| 镇雄县| 新泰市| 都匀市| 彝良县| 绍兴市| 舟曲县| 南澳县| 翁牛特旗| 抚宁县| 遂昌县| 横峰县| 都匀市| 横山县| 肥西县| 红河县| 定边县| 平昌县| 万山特区| 蒙自县| 赤峰市| 黔江区| 榆社县| 若羌县| 连城县| 缙云县| 耒阳市| 洪江市| 龙陵县| 伊金霍洛旗| 襄樊市| 突泉县| 乌鲁木齐市| 哈巴河县| 隆子县| 宜昌市| 榆社县|