【问题标题】:Android coloring string to add to a string lineAndroid着色字符串添加到字符串行
【发布时间】:2016-05-18 22:50:30
【问题描述】:

我这里有这个列表方法,它创建一个事件列表

  public List<Booking> createBookings(Date data) {
        ArrayList<Booking> events = new ArrayList<>();
        SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
        String dateString = formatter.format(data);
        Cursor c = db.rawQuery("SELECT ID, EVENT, LOCATION, START_DATE, START_TIME," +
                " END_DATE, END_TIME, COLOR FROM events WHERE START_DATE<= ? AND END_DATE>= ? ORDER BY START_TIME", new String[]{dateString, dateString});

        if (c.moveToFirst()) {
            do {
                ...
                color = c.getString(7);
                String marker = setColor("•",color);
                ....
                Booking event = new Booking(eventID,marker+" "+start_time+" "+eventTitle+" \n"+durationStr+" "+durationStrHours+durationStrMins+location, data);
                events.add(event);
                Log.e("EVENTS", "Event ID - " + eventID + " Title - " + eventTitle);
            } while (c.moveToNext());

        }
        return events;
 }

我想做的是为特定字符串设置颜色,从数据库中获取颜色值

//This would take color code or name or however I choose to save the color value.
 color = c.getString(7); 

现在我想通过使用类似这样的东西来设置该字符串的颜色

  String marker = setColor("•",color);

所以setColor 方法将返回一个彩色字符串,然后我可以用它添加到Booking 中的字符串行,它有3 个参数Booking(Integer id, String title, Date date)

Booking event = new Booking(eventID,marker+" "+start_time+" "+eventTitle+" \n"+durationStr+" "+durationStrHours+durationStrMins+location, data);

因此,我只会在字符串行中看到那个特定的字符串。那么这样的事情可能吗?我尝试使用Spannable,但这是不行的,因为最后我需要 String 对象..

【问题讨论】:

  • 查看此链接link。这可能会对您有所帮助

标签: android string colors


【解决方案1】:

实现此目的的一种方法是以编程方式设置 html 字符串。例如,您可以有一个字符串资源,如:

&lt;string&gt;name="html_format"&gt;&lt;[CDATA[&lt;font color=%d&gt;your coloured text&lt;/font&gt;]]&gt;&lt;/string&gt;

然后在运行时,您只需使用所需颜色格式化 html 并将其设置在 TextView 上

textView.setText(Html.fromHtml(formattedString));

您还可以使用此技术轻松地将带有&lt;b&gt; 标记的TextView 文本部分设为粗体。 Android TextViews 接受的 Html 有一个限制,但并非所有格式选项都受支持。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-08-15
    • 2021-10-24
    • 2014-11-27
    • 2011-07-30
    • 1970-01-01
    • 2017-03-10
    相关资源
    最近更新 更多