EditText не отображает перевод, в то время как Logcat делает - PullRequest
1 голос
/ 11 июня 2019

Я использую API Яндекс.Переводчика для перевода строки. Это происходит успешно, как видно из logcat. Но когда я устанавливаю значение EditText (eText) для результата перевода, он неправильно анализирует данные и показывает что-то вроде {"code": 200, "lang": "en-ru", "text": [ "Он не работает!"]}, Второй результат вместо первого требуемого результата "Он не работает!"

2019-06-11 02:36:57.917 14680-                      
14731/com.bahraindiction.goldeneagle.sightling D/Translation Result:: Он 
не работает!
2019-06-11 02:36:57.918 
1468014680/com.bahraindiction.goldeneagle.sightling D/Translation Result:         
{"code":200,"lang":"en-ru","text":["Он не работает!"]}
       TranslatorBackgroundTask translatorBackgroundTask= new TranslatorBackgroundTask(context);
       String translationResult = null; // Returns the translated text as a String
       try {
           translationResult = translatorBackgroundTask.execute(textToBeTranslated,languagePair).get();
       } catch (ExecutionException e) {
           e.printStackTrace();
       } catch (InterruptedException e) {
           e.printStackTrace();
       }
       Log.d("Translation Result",translationResult); // Logs the result in Android Monitor
       eText.setText(translationResult);
   }

Как видно выше, Log.d правильно отображает переведенный результат И отображает перевод "без разбора", тогда как eText отображает только не разбранный результат.

1 Ответ

1 голос
/ 11 июня 2019

translationResult в формате JSON. Сначала проанализируйте этот JSON, выберите текстовую строку и установите значение eText. Вы можете использовать gson или подобную библиотеку для разбора JSON.

...