Я занимаюсь разработкой мобильного приложения (BlackBerry) с Java, которое использует API Google Translate. Я настроил его так, чтобы пользователь мог указать язык перед входом в систему, а затем, как только он вошел в систему, у меня есть обертки вокруг каждого фрагмента текста, отображаемого на экране, который будет переводить текст на основе выбранного языка.
Моя проблема в том, что на данном экране нужно перевести несколько вещей. Поэтому мне приходится обращаться к Google Translate API несколько раз за экран. Для этого я открываю HTTPConnection в новом потоке. Поэтому я передаю свой интерфейс экрана классу Translator, а затем класс Translator будет вызывать мои методы обратного вызова для этого экрана (requestSucceeded () или requestFailed ()).
Теперь, допустим, я перевожу как заголовок экрана, так и основной текст экрана. Это две отдельные HTTPConnections. Поэтому, когда заголовок переведен, я хочу, чтобы мой метод requestSucceeded () установил текст в моем заголовке LabelField. Когда основной текст переведен, я хочу, чтобы мой метод requestSucceeded () установил текст в моем теле LabelField.
Каков наилучший способ сделать так, чтобы мой метод requestSucceeded () различал разные поля для обновления? В настоящее время я передаю переводчику две вещи (через массив String []): текст для перевода и «cookie», описывающий переводимый элемент. Затем я использую операторы if в моем методе обратного вызова requestSucceeded (), чтобы обновить соответствующее поле на основе «cookie» (которое переводчик отправит обратно вместе с переведенным текстом).
Я чувствую, что должен быть лучший способ сделать все это. У кого-нибудь есть предложения?
Спасибо!