2014-08-30 26 views
0

我正在創建Android瀏覽器,並在我的瀏覽器中創建了收藏夾頁面。 在我最喜歡的頁面中,我有一個EditText,我在其中插入我想添加的網站的地址,一個刪除按鈕,刪除所有收藏夾和一個TextView,顯示添加的網站。如何使TextView可點擊但不能用手機的瀏覽器啓動

我的問題是......我如何讓地圖顯示在TextView中成爲鏈接,不僅是字符串,而是要在我的瀏覽器中打開?

到目前爲止,我所有的嘗試都是通過手機的瀏覽器打開它。我的瀏覽器是這樣構建的:一個菜單,它是一個OnListItemClick,我可以選擇HomePage,它具有可以瀏覽互聯網的主要功能,可以使用後退和前進,刷新按鈕。 在菜單中,在主頁之後,我有收藏夾,歷史記錄和設置。我需要它來啓動主頁,並訪問該網站,當我點擊收藏夾TextView的鏈接。任何人都可以給我一個想法如何做到這一點?我相信我需要爲此做出一個巨大的方法,但我不知道如何開始。

+0

這將是很好,如果你可以格式化你的問題,以添加一些空間,也使您的問題在一個單獨的段落。這樣你的問題會吸引更多的人:) – hoomi 2014-08-30 10:57:57

+0

感謝您的提示。完成 – 2014-08-30 11:00:01

+0

爲什麼你不能在列表視圖中擁有最愛? – Breadbin 2014-08-30 12:13:47

回答

0

知道這很晚了。只是覺得別人也可能會覺得這很有用。

你可以實現你自己的ClickableSpan來實現這一點。您可以從頭創建一個Spannable並分配給TextView像:

Spannable text = Spannable.newSpannable("Source text with link"); 
ClickableSpan link = new ClickableSpan { 
    public abstract void onClick (View widget) { 
     // Implement your own link behaviour 
    } 
} 
text.setSpan(clickable, startPos, endPos, flags); 
textView.setText(text); 

或者,如果你的來源是HTML,您可以使用Html.fromHtml("Source text with <a href='whatever'>link</a>")其解析HTML並轉換成鏈接爲URLSpan你。然後,您需要用您自己的ClickableSpan替換上述所有URLSpan。 (見Spanned#getSpansSpannable

這可能很乏味。因此我創建了一個庫來簡化這個問題。隨着Textoo就可以實現同樣喜歡:

Spanned linksLoggingText = Textoo 
    .config("Links: <a href='http://www.google.com'>Google</a>") 
    .parseHtml() 
    .addLinksHandler(new LinksHandler() { 
     @Override 
     public boolean onClick(View view, String url) { 
      Log.i("MyActivity", "Linking to google..."); 
      return false; // event not handled. Continue default processing i.e. link to google 
     } 
    }) 
    .apply(); 
相關問題