Можно ли изменить цвет текста для одного элемента базы данных, когда он печатается из курсора? - PullRequest
0 голосов
/ 06 июня 2011

У меня есть база данных, которую я использую для отображения курсора. То, что я делаю сейчас, это просто добавление результатов в строку и отображение. Я пытаюсь изменить цвет текста заголовка каждого результата базы данных в зависимости от типа элемента, но я не думаю, что это возможно при добавлении текста с помощью Stringbuilder.

Есть ли что-то еще, что я мог бы использовать, чтобы сделать это возможным, или я пропустил что-то, используя Stringbuilder, которое позволило бы мне сделать это?

Вот пример вывода, который я пытаюсь получить:

Название предмета 1 (синий) Описание товара (белый) Рейтинг (белый) Модель (белая)

Название предмета 2 (красный) Описание товара (белый) Рейтинг (белый) Модель (белая)

Наименование 3 (зеленый) Описание товара (белый) Рейтинг (белый) Модель (белая)

Название предмета 4 (зеленый) Описание товара (белый) Рейтинг (белый) Модель (белая)

И так далее ...

Цвет поля Имя элемента будет зависеть от самого элемента. Спасибо за любую помощь или указать в правильном направлении.

Редактировать 1 Вот сокращенный пример (с некоторыми удаленными столбцами базы данных) того, как я отображаю результаты:

public void showItems(Cursor cursor) {
    StringBuilder ret = new StringBuilder();
    while (cursor.moveToNext()) {
        String name = cursor.getString(1);
        String model = cursor.getString(2);
        ret.append(name + "\n" + model + "\n);
    }
    sResults.setText(ret);
}

Это из учебника, который я нашел в Интернете, и он отлично работает, за исключением того, что все части текста меняются на другой.

Редактировать 2 Основываясь на предложении ниже, я попробовал это:

public void showItems(Cursor cursor) {
    StringBuilder ret = new StringBuilder();
    while (cursor.moveToNext()) {
        String name = cursor.getString(1);
        String model = cursor.getString(2);
        Spanned styleText = (Html.fromHtml("<b><style='color:red;'>" + name + "</style></b><br />" + model + "<br />"));

        ret.append(styleText);
    }
    sResults.setText(ret);
}

Я получаю те же результаты, что и мой исходный код, без цвета. Любые другие предложения?

1 Ответ

1 голос
/ 06 июня 2011

Использовать fromHtml: это позволит вам стилизовать вашу строку.

   String styleText = "This is <style='color:red;'>red</style>.";
   textView.setText(Html.fromHtml(styleText), TextView.BufferType.SPANNABLE);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...