Android: отображение текста в формате HTML в ListView при загрузке из базы данных - PullRequest
2 голосов
/ 11 января 2011

У меня есть база данных SQLite, в которой некоторые из них содержат базовый HTML-код, например, теги b и sub.Я связал таблицу с ListView, используя SimpleCursorAdapter.Есть ли способ заставить ListView форматировать теги HTML, чтобы он отображался правильно?Кажется, что путь вперед - заставить Cursor доставлять SpannedStrings, но я не могу понять, как это сделать.

Ответы [ 3 ]

3 голосов
/ 13 января 2011

Спасибо, Ян, это мой последний код адаптера:

    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 голос
/ 11 июля 2011

Вы можете использовать класс CursorWrapper.

CursorWrapper cw = new CursorWrapper(myCursor) {
    public String getString(int columnIndex) {
        String withHTML = super.getString(columnIndex);
        return Html.fromHtml(withHTML).toString();
    }
};
1 голос
/ 11 января 2011

Если ваши данные содержат только простые теги HTML, они могут быть обработаны TextView с помощью Html.fromHtml (yourString). Этот статический метод возвращает Spanned, который может отображаться TextView с гораздо меньшими издержками, чем WebView.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...