不要理解如何在我的代码中修复此错误,"必须从UI线程调用方法getText,当前推断的线程更多是工作者...(⌘F1)"。
在这一行中,String name = addressEdit.getText()。toString();部分" addressEdit.getText()"加下划线。
我看过并发现类似但解决方案直接适用。
以下代码 -
私有类GeocodeAsyncTask扩展AsyncTask { String errorMessage ="";
@Override
protected void onPreExecute() {
}
@Override
protected Address doInBackground(Void... none) {
Geocoder geocoder = new Geocoder(MainActivity.this, Locale.getDefault());
List<Address> addresses = null;
if (fetchType == USE_ADDRESS_NAME) {
String name = addressEdit.getText().toString();
try {
addresses = geocoder.getFromLocationName(name, 1);
} catch (IOException e) {
errorMessage = "Service not available";
Log.e(TAG, errorMessage, e);
}
} else {
errorMessage = "Unknown Type";
Log.e(TAG, errorMessage);
}
if (addresses != null && addresses.size() > 0)
return addresses.get(0);
return null;
}
提前感谢您的帮助!