我正在使用片段为Android创建一个翻译应用程序(因为我有标签)。
我找到了一些使用Microsoft API进行翻译的好教程,但在我找到this之前,它们都没有用。
作为一项活动,当我将其更改为片段时,它不会。
以下是经过一些小改动之后的代码:
public class HomeFragment extends Fragment
{
TextView text;
String translatedText;
View rootView;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
rootView = inflater.inflate(R.layout.fragment_home, container, false);
text=(TextView)rootView.findViewById(R.id.translatedtext);
text.setText("<This text should change after translation has occurred in AsyncTask>");
new MyAsyncTask() {
protected void onPostExecute(Boolean result) {
text.setText(translatedText);
}
}.execute();
return rootView;
}
class MyAsyncTask extends AsyncTask<Void, Integer, Boolean>
{
@Override
protected Boolean doInBackground(Void... arg0) {
Translate.setClientId("MicrosoftTranslatorJavaAPI");
Translate.setClientSecret("0VHbhXQnJrZ7OwVqcoX/PDZlyLJS9co3cVev1TPr8iM=");
try {
translatedText = Translate.execute("I should probably set this to something a little less profane", Language.ENGLISH, Language.FRENCH);
} catch(Exception e) {
translatedText = e.toString();
}
return true;
}
}
}
XML目前只是一个简单的TextView(就像Github的例子)。
我需要更改什么才能使asynctask工作?
答案 0 :(得分:0)
几周前我想出了解决方案,但刚才想到分享这个问题。 解决方案有点简单,就在我的鼻子底下。 我的项目中的API microsoft-translator-java-api-0.6.1-jar-with-dependencies ,我手动添加,它只是&#34;浮动&#34;在我的项目文件夹中。 当我手动将其插入libs文件夹时,它出现在 Android私有库中。现在翻译工作了!