2013-07-09 28 views
1

我有一個問題,捕捉點擊鏈接。有textview包含列表視圖中的鏈接

您可以使用此顯示鏈接:

<ListView 
    android:id="@+id/newsListview" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:linksClickable="true" 
    android:autoLink="all"   
    > 
</ListView> 

// **s** contains mixed text with multiple links in  
textview.setText(Html.fromHtml(s)); 

然而,TextView的內點擊,該事件由

OnItemClickListener eventClickListener = new OnItemClickListener() 
    {         
    public void onItemClick(AdapterView<?> parent, View v, int position, long id) 
    {       
     MyListItemExt data = myItemsDataArrayList.get(position);    
     //... 
     Intent paramIntent = new Intent(thisActivityContext, Browser.class); 
     //... 
    } 
    } 
    newsListView.setOnItemClickListener(eventClickListener); 

抓有人建議使用

textview.setMovementMethod(LinkMovementMethod.getInstance()); 

但1)它似乎禁用所有鏈接和2)我不明白閱讀文件,爲什麼他會這樣lp

現在,我已經看到了一些關於使用意圖過濾器(以避免外部瀏覽器打開)的建議,但只要點擊被列表視圖捕獲,我不認爲它會做出任何不同之處,因爲鏈接就我所知,點擊並沒有被捕獲。

+0

可能重複的[convertView失去onViewmClick後滾動listView](http://stackoverflow.com/questions/12863662/convertview-loses-onitemclick-after-the-listview-is-滾動) – frozenkoi

回答

0

在的TextView的XML,添加線

android:autoLink="web" 
android:textIsSelectable="false" 

然後,對於(包含您的行線性或相對佈局)在整個視圖中,內getView()添加onClickListener。這並不高雅,但這是我以前不得不這樣做的方式。

+0

不解決問題描述?顯示鏈接沒有問題(事實上,我已經在做你所描述的內容,只是使用「all」而不是「web」作爲值,但我已經嘗試了這兩種方式),這是實際打開的鏈接不工作(對我來說)什麼時候(我猜)textview被放置在一個列表視圖捕獲點擊 – Tom

+0

對不起,沒有讀完整個問題(我覺得真的很愚蠢)。發佈更好的答案。 – bclymer

+0

我對** listview **有** setOnItemClickListener **我想你建議在** textview **上添加** setOnClickListener **(即在listview中的每個項目中都有一個textview)?但是,如何識別文本中的哪個鏈接被點擊? – Tom