У меня есть следующий строковый ресурс:Android string.Format метания UnknownFormatConversionException
<string formatted="false" name="residential_search_url">https://api.trademe.co.nz/v1/Search/Property/Residential.json?latitude_min=%f%26latitude_max=%f%26longitude_min=%f%26longitude_max=%f</string>
Это время используется в деятельности по:
String residentialUrl = task.getSearchUrl(_map.getProjection().getVisibleRegion().latLngBounds,getString(R.string.residential_search_url));
И метод определяется как:
public String getSearchUrl(LatLngBounds bounds, String baseUrl){
return String.format(baseUrl,
bounds.southwest.latitude,
bounds.northeast.latitude,
bounds.southwest.longitude,
bounds.northeast.longitude);
}
Я продолжаю получать:
java.util.UnknownFormatConversionException: Conversion = l''
Я также попытался использовать %s
вместо %f
, и это не имело значения.
Мне нужно избежать амперсандов в строке запроса. Как мне это сделать? Я думал, что это было 26%, но, видимо, нет? – codedog
У меня получилось не так - оказалось, что он сбежал как '&'. Теперь он работает отлично. – codedog
% 26 будет работать в большинстве ситуаций, только когда вы используете строку в качестве входных данных для того, что интерпретирует символы% в качестве спецификаторов формата. Похоже, вы избегали проблемы. – user3109924