【发布时间】:2010-10-10 18:48:02
【问题描述】:
我正在使用 Java 开发一个使用 Google Translate API 的移动应用程序 (BlackBerry)。我已经设置好了,这样用户就可以在登录之前指定一种语言,然后一旦他们登录,我就会对显示在屏幕上的每一段文本进行包装,这将根据选择的语言翻译文本。
我的问题是需要在给定屏幕上翻译多个内容。因此,我必须在每个屏幕上多次访问 Google Translate API。为此,我在一个新线程上打开一个 HTTPConnection。所以我将我的 Screen Interface 传递给 Translator 类,然后 Translator 类将为该 Screen 调用我的回调方法(requestSucceeded() 或 requestFailed())。
现在,假设我翻译了屏幕标题和屏幕正文文本。那是两个独立的 HTTPConnections。所以当标题被翻译时,我希望我的 requestSucceeded() 方法在我的标题 LabelField 上设置文本。翻译正文文本后,我希望我的 requestSucceeded() 方法在我的正文 LabelField 上设置文本。
让我的 requestSucceeded() 方法区分要更新的不同字段的最佳方法是什么?目前,我向 Translator 传递了两件事(通过 String[] 数组):要翻译的文本和描述正在翻译的项目的“cookie”。然后我在我的 requestSucceeded() 回调方法中使用 if 语句来更新基于“cookie”的适当字段(翻译器将连同翻译的文本一起发回)。
我觉得必须有更好的方法来完成这一切。有人有什么建议吗?
谢谢!
【问题讨论】:
-
你的方法听起来很合理。不要试图太聪明。使用最简单的有效解决方案。
标签: java blackberry mobile methods callback