2011-01-11 46 views
2

我有一個項目的SQLite數據庫,其中一些包含基本HTML,如b和子標籤。我已經使用SimpleCursorAdapter將表綁定到ListView。有沒有辦法讓ListView格式成爲HTML標籤,以便正確顯示? 看來前進的道路是讓Cursor提供SpannedStrings,但我無法解決如何做到這一點。Android:從數據庫加載時在ListView中顯示HTML格式的文本

回答

1

如果您的數據僅包含簡單的HTML標記,那麼它們實際上可以通過使用Html.fromHtml(yourString)由TextView處理。該靜態方法返回一個Spanned,它可以通過一個TextView顯示,其開銷遠遠小於WebView。

+0

對不起,但我不知道我可以把這段代碼放在哪裏。我試圖擴展TextView,但setText方法設置爲final。 – Kieran 2011-01-12 03:28:16

+0

您不需要擴展TextView,只需將其傳遞給Html.fromHtml()返回的Spanned而不是來自Cursor的String。您可以擴展SimpleCursorAdapter並覆蓋setViewText方法。 – 2011-01-12 07:28:21

3

感謝伊恩,這是我最後的銜接代碼:

private class HtmlCursorAdapter extends SimpleCursorAdapter { 

    public HtmlCursorAdapter(Context context, int layout, Cursor c, String[] from, int[] to) { 
     super(context, layout, c, from, to); 
    } 

    @Override 
    public void setViewText (TextView view, String text) { 
     view.setText(Html.fromHtml(text),BufferType.SPANNABLE); 
    } 
} 
1

你可以使用CursorWrapper類。

CursorWrapper cw = new CursorWrapper(myCursor) { 
    public String getString(int columnIndex) { 
     String withHTML = super.getString(columnIndex); 
     return Html.fromHtml(withHTML).toString(); 
    } 
}; 
相關問題