2012-07-17 62 views
1

我正在使用黑莓应用程序(OS 5.0),并且需要显示最近用户的推文。
我可以从Twitter的结尾获取数据。现在解析实体(主题标签,网址,用户提及等)后,我需要用单独的格式(颜色,粗体等)显示它们。所以我为推文的不同部分使用不同的LabelFields。
但是LabelFields默认是块元素。我如何将这些LabelFields内联,以便它看起来像它在Twitter中的显示方式?如何制作内嵌标签字段

这样的:
enter image description here

+4

尝试使用RichTextField。如果它不适合你的问题,那么你需要编写你自己的RichTextField类似的原始文本的子文本中的点击支持。 – Rupak 2012-07-17 05:59:59

+0

@Rupak好的..你能告诉我如何使RichTextField可点击的一部分?我应该如何处理touchEvent和navigationClick?谢谢。 – Soap 2012-07-17 06:28:18

+0

我不确定这是否可以使用'RichTextField'来实现。但你可以试试看。 'RichTextField'中有方法获取游标位置'public int getCursorPosition()',使用游标位置'int getRegion(int offset)'获取格式化区域,并获取该区域的Cookie'public Object getRegionCookie(int region) 。 (String text,int [] offset,byte [] attributes,Font [] fonts,Object [] cookies,long style)''RichTextField''也可以用一个格式化区域参数数组来构造'RichTextField'' 。 – Rupak 2012-07-17 07:01:16

回答

0

我发现Blackberry SDK中有一个名为ActiveRichTextField的组件,它可以自动扫描其内容并解析使它们可以聚焦和点击的链接。如果Twitter应用程序安装在该设备中,它还会解析实体。现在它解决了我的问题。多谢你们。

1

也有人建议RichTextField但你必须写自己的文字过滤器颜色的语法 - 这将是一个很大的努力。如果有可点击的链接内联是必须的,那么我个人会使用BrowserField,但这意味着你的逻辑将不得不输出一个完整的屏幕价值的HTML到HTML(屏幕不喜欢有多个browserfield - 这是可行的不止一个,但有一些黑客)和管理点击事件 - 更多的并发症。

或者你可以这样做:http://devblog.blackberry.com/2009/10/how-to-use-table-view-layout/你不会在文本主体中有可点击区域,但它仍然会使用本地字段而不是使用标记“欺骗”,可能是最好的方法。