我的应用包含自定义列表视图,每行包含文字。
我的MainActivity puts
已翻译的字符串被称为feedData
的HashMap,由CustomListView Class
检索,其中每行设置TextView
。
关于我的自定义列表视图的一切都表现完美。我收到此错误是因为我正在实施Google API转换,这迫使我使用AsyncTask或Thread。这些值会填充到每一行,但仅限于我向上和向下滚动。
MainActivity
TranslateString(feedText, feedData);
arrayFeedList.add(feedData);
翻译字符串方法:
public void TranslateString(final String mText, final HashMap<String, String> mList) {
AsyncTask<Void, Void, Void> asyncTask = new AsyncTask<Void, Void, Void>() {
@Override
protected Void doInBackground(Void... voids) {
try {
Translate translate = TranslateOptions.builder().setApiKey("AIzaSyB7cCDBbeoZ2tYTH-Ynv25OaPraLmTG7Hw").build().getService();
Translation translation =
translate.translate(
mText,
TranslateOption.sourceLanguage("tr"),
TranslateOption.targetLanguage("en"));
returnedString = translation.getTranslatedText();
check = 1;
} catch (Exception e) {
check = 2;
}
return null;
}
@Override
protected void onPostExecute(Void result) {
if(check == 1){
mList.put("feed", returnedString);
}
else if(check == 2){
mList.put("feed", mText + " " + getContext().getString(R.string.translationfailed) + " in catch");
}
}
};
asyncTask.execute();
}
}
答案 0 :(得分:0)
在我的MainActivity中执行此操作修复了我的问题:(完全删除AsyncTask方法后)
if (android.os.Build.VERSION.SDK_INT > 9)
{
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);
}