編輯:Android資訊
Android中的TTextView很強大,我們可以不僅可以設置純文本為其內容,還可以設置包含網址和電子郵件地址的內容,並且使得這些點擊可以點擊。但是我們可以捕獲並控制這些鏈接的點擊事件麼,當然是可以的。
本文將一個超級簡單的例子介紹一下如何實現在Android TextView 捕獲鏈接的點擊事件。
實現原理就是將所有的URL設置成ClickSpan,然後在它的onClick事件中加入你想要的控制邏輯就可以了。
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; }
TextView myTextView = (TextView)findViewById(R.id.myTextView); String url = "This is a page with lots of URLs. <a href=\"http://droidyue.com\">droidyue.com</> " + "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));
我們需要在ClickSpan的onClick方法中加入自己的控制邏輯,比如我們使用傲游浏覽器打開點擊的鏈接。
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); }
不要忘了設置TextView的autoLink屬性。
<TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/hello_world" android:id="@+id/myTextView" android:autoLink="web" />
百度雲盤
一、概述 在上一篇博文中,我們給大家介紹了Android自定義控件系列的基礎篇。鏈接:http://www.codeceo.com/article/android
在清楚了View繪制機制中的第一步測量之後,我們繼續來了解分析View繪制的第二個過程,那就是布局定位。繼續跟蹤分析源碼,根據之前的流程分析我們知道View的繪制
Android編程中一個共同的困難就是協調Activity的生命周期和長時間運行的任務(task),並且要避免可能的內存洩露。思考下面Activity的代碼,在它
在這篇教程中,我們將對之前所添加的Button元素進行設置以實現對用戶點擊的檢測與響應。為了達成這一目標,我們需要在應用程序的主Activity類中略微涉及Jav