2012-02-17 90 views
0

我試圖在列表視圖行中顯示超鏈接(格式化爲超鏈接),但沒有任何運氣。首先,我膨脹news_row視圖類變量在onCreateView供以後Android:超鏈接ListFragment ListView行

news_row = (LinearLayout) inflater.inflate(R.layout.news_row,null); 

我稱之爲onActivityCreate setNews,然後尋找有超鏈接,然後流行行的TextView的:

public void setNews(){   

     TextView textcontent = (TextView) news_row.findViewById(android.R.id.text2); 
     textcontent.setMovementMethod(LinkMovementMethod.getInstance()); 

     String[] matrix = {"_id", "title", "content", "date"}; 
     String[] columns = {"title", "content", "date"}; 
     int[] layouts = {android.R.id.text1,android.R.id.text2, R.id.text3}; 

     MatrixCursor cursor = new MatrixCursor(matrix); 
     for(int i = 0 ; i < straNewsTitle.length; i++) { 
      cursor.addRow(new Object[] {i, straNewsTitle[i], Html.fromHtml(straNewsContent[i]), straNewsDate[i] }); 
     } 
     SimpleCursorAdapter a = new SimpleCursorAdapter(fa, R.layout.news_row, cursor, columns, layouts);   
     setListAdapter(a); 
} 

straNewsContent持有正文對於可能包含html超鏈接標籤的新聞項目。我news_row佈局:

<?xml version="1.0" encoding="utf-8"?> 
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:background="#ffefe5" android:orientation="vertical" android:paddingLeft="15px" android:paddingRight="15px" android:paddingBottom="5px" android:paddingTop="5px"> 
<TextView 
    android:id="@android:id/text1" 
    android:gravity="top" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:textColor="#666666" 
    android:textSize="20dp" 
    android:background="#ffefe5" 
    android:textStyle="bold" 
/> 
<TextView 
    android:id="@android:id/text2" 
    android:gravity="bottom" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:layout_below="@android:id/text1" 
    android:textColor="#666666" 
    android:textSize="15dp" 
    android:background="#ffefe5" 
    android:autoLink="web|email" 
/> 
<TextView 
    android:id="@+id/text3" 
    android:gravity="bottom" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:layout_below="@android:id/text1" 
    android:textColor="#666666" 
    android:textSize="12dp" 
    android:background="#ffefe5" 
/> 
</LinearLayout> 

機器人:自動鏈接=「網頁|電子郵件」的偉大工程被格式化網址,但HTML標籤不被渲染的字符串。任何幫助都是極好的。

回答

0

想通了。我必須實現我自己的BaseAdapter並在getView()中進行更改。

0

嘗試Html.fromHtml(String source),它會將HTML片段作爲輸入並輸出格式化爲放入TextView的字符串。

舉例來說,這裏是一個從ApiDemos應用程序的一個片段:

TextView t3 = (TextView) findViewById(R.id.text3); 
    t3.setText(
    Html.fromHtml(
     "<b>text3:</b> Text with a " + 
     "<a href=\"http://www.google.com\">link</a> " + 
     "created in the Java source code using HTML.")); 
    t3.setMovementMethod(LinkMovementMethod.getInstance()); 
+0

我已經在使用HTML.fromHTML。 – Scott 2012-02-18 00:39:14