【发布时间】:2019-01-08 14:36:43
【问题描述】:
我正在致力于将语音转文本并进行翻译。我想要做的是当用户输入他/她的声音时,将根据在微调器中选择的内容进行自动翻译。
这是我项目中的代码,我收到错误 android.os.NetworkOnMainThreadException。我找到的解决方案是将其置于异步状态。
我尝试在互联网上搜索,甚至询问论坛,我找不到将这段代码放入 asynctask 的解决方案。这是我要放入异步的代码。
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
Translate translate = TranslateOptions.getDefaultInstance().getService();
TextView translatedText = view.findViewById(R.id.translatedText);
switch (position){
case 1:
Translation enTranslation = translate
.translate(translatedText
.getText()
.toString(), TranslateOption.sourceLanguage("en"), TranslateOption.targetLanguage("en"));
translatedText.setText(enTranslation.getTranslatedText());
break;
case 2:
Translation filTranslation = translate
.translate(translatedText
.getText()
.toString(), TranslateOption.sourceLanguage("en"), TranslateOption.targetLanguage("fil"));
translatedText.setText(filTranslation.getTranslatedText());
break;
case 3:
Translation cebTranslation = translate
.translate(translatedText
.getText()
.toString(), TranslateOption.sourceLanguage("en"), TranslateOption.targetLanguage("ceb"));
translatedText.setText(cebTranslation.getTranslatedText());
break;
}
}
我预计我不会得到 android.os.NetworkOnMainThreadException。在此先感谢:)
【问题讨论】:
-
你有很多可能的解决方案;最常见的是使用
AsyncTask。
标签: java android-studio android-asynctask