黑莓 RichTextFormatting

Posted

技术标签:

【中文标题】黑莓 RichTextFormatting【英文标题】:BlackBerry RichTextFormatting 【发布时间】:2011-05-20 12:04:46 【问题描述】:

我正在使用 BlackBerry 知识中心教程“How To Format RichTextField”为我的 RichTextField 设置格式。

我在格式化文本时遇到了一些困难,例如:

A 我在街上走 B 突然看到一只会飞的狗

如果我只想将字母 A 和 B 加粗,我需要知道它们的字符串索引和长度。

我创建了2个数组,一个处理整个文本中字母的索引,第二个数组处理每个字母索引的长度,例如:A(长度1),WC(长度2)。

我尝试循环运行它,但它不起作用:

Font fonts[] = new Font[2];
    int[] offset = new int[3];
    byte[] attribute = new byte[3];

    //Get three instances of the default font.
    //On plain, one bold and one bold and italic.
    fonts[0] = Font.getDefault();
    fonts[1] = Font.getDefault().derive(Font.BOLD);

    for (int i = 0; i<lettersLength; i++) 
      offset[0] = letterIndexes[i]; //handles the indexes of the letters in the entire text
      attribute[0] = 1;
      offset[1] = letterLength[i]; //handles each letter index
    

【问题讨论】:

您能否提供您如何/在哪里初始化了字母长度和字母索引?另外,您期望和得到什么输出?谢谢。 我正在处理分配给每个字母的字母和文本的数据库我在主文本字符串中添加了一个字母,根据整个文本保存了它的长度和索引,然后我添加了相关的文本与特定的字母。我想将主字符串文本(处理字母和与每个字母关联的文本)添加到 RichTextField 并仅加粗字母索引 【参考方案1】:
offsets[0] = 0; // index of A, first character
attribute[0] = 1;  // Choose the bold font starting at offsets[0]
offsets[1] = 1;  // 1 past the desired bold
attributes[1] = 0;  // assign the regular font starting at offset[1]
offsets[2] = index of 'B';
attributes[2] = 1; // set the style to the bold font for this
offsets[3] = index of 'B' + 1; // the new non bold segment starts just after the B
attributes[3] = 0; // set the style to normal

抱歉代码不是更好,但希望对您有所帮助。

【讨论】:

以上是关于黑莓 RichTextFormatting的主要内容,如果未能解决你的问题,请参考以下文章

黑莓是啥东西

黑莓是啥

黑莓手机是啥手机?

“黑莓”是啥意思啊?有人懂吗?

都说黑莓手机功能强大,黑莓手机到底都有啥功能?

黑莓是种啥水果?