2015-08-23 10 views
1
protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     Translate.main(null); 
     TextView textElement = (TextView) findViewById(R.id.this_is_id_name); 
     textElement.setText(message); 
     //leave this line to assign a specific text 
    } 
    // Separate Class calling Translate 
    public final class Translate extends YandexTranslatorAPI { 
     public final static String message = com.mohsen.transl.Translate.translation"; 
     //prevent instantiation 
     private Translate(){}; 
     public static void main(String[] args) { 
     try { 
      setKey(ApiKeys.YANDEX_API_KEY); 
      String translation = Translate.execute("The quick brown fox jumps over the lazy dog.", Language.ENGLISH, Language.SPANISH); 
      System.out.println("Translation: " + translation); 
     } catch (Exception e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 
     } 
    } 

Я пытаюсь вызвать метод перевода и хранение возвращаемого значения строки перевода в Разъяснительной строку и отображение с помощью моего основного OnCreate в MainActivity классе.Как SetText из общественных струнного

Я думаю, что это простейшая форма. Пожалуйста помоги. enter image description here

+0

Если 'message' является окончательным, вы не сможете изменить его OnCreate(). И есть цитата, отсутствующая в объявлении 'public final static String message', – laune

+0

public final static String message =" com.mohsen.transl.Translate.translation "; разве это не изменилось бы при изменении переменных перехода? –

+0

Публичное окончательное статическое сообщение String = ........ должно быть в файле основного класса. Я исправил это. Его компиляция, но я получаю тег: com.mohsen.transl.transl.Translate.translation как мой текст .. Я хочу, что в этом теге –

ответ

2
class Translate extends YandexTranslatorAPI { 
    public static String message; 
    //prevent instantiation 
    private Translate() { 
    } 
    public static void main(String[] args) { 
     try { 
      setKey(ApiKeys.YANDEX_API_KEY); 
      String translation = Translate.execute("The quick brown fox jumps over the lazy dog.", Language.ENGLISH, Language.SPANISH); 
      message = translation; 
      System.out.println("Translation: " + translation); 
     } catch (Exception e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 
    } 
} 

и в методе

textElement.setText(Translate.message); 
+0

Я думаю, что работает. только я не получаю ничего взамен. похоже, мне нужно снова проверить класс перевода. и отладки. но для уточнения: другой способ, который я пытался, объявляет public final static String message = "com.mohsen.transl.translate.Translate.translation"; я получал следующее на дисплее: com.mohsen.transl.translate.Translate.translation - очевидно, не то, что я хотел. меняя его на Translate.message, я думаю, что работает. я буду размещать другой вопрос относительно вызова Перевести (null) –