Здравствуйте, всем вам, специалистам по Java и Android, я действительно могу использовать вашу помощь с каким-то проектом для своей школы, так как я застрял без подсказки.Адрес сервера или IP-адрес службы погоды серфера в настоящее время по-прежнему жестко закодирован
В ServletWeatherAPI деятельности, адрес сервера или IP для службы сервлет погоды в настоящее время по-прежнему жестко, например:
Private final static String baseURL = "http://192.168.178.21:8080/WeatherService/weather? ";
На вкладке Параметры в MultiWeatherApp , Мне нужно добавить опцию для указания адреса или IP-адреса моего сервера (без пути сервлета)/WeatherService/ Погода? "). Веб-запрос для этой службы погоды должен использовать адрес, хранящийся в SharedPreferences.
У кого-нибудь есть идея, как я могу это сделать? так как у меня их нет. Я знаю, как добавить к preferences.xml вариант, но не знаю обо всем остальном. Я прикладываю свой проект от github и вызовы ServletWeatherAPI. Любая помощь будет высоко оценена, я не эксперт, поэтому псевдокод будет очень полезен для ее понимания. my app in Github
public class ServletWeatherAPI implements IWeatherAPI {
private final static String baseURL = "http://localhost:8080/WeatherService/weather?";
private JSONObject weatherdata;
private ServletWeatherAPI(String queryString) throws
IOException, JSONException {
String result = HttpRequest.request(baseURL + queryString);
weatherdata = new JSONObject(result);
}
public static IWeatherAPI fromLocationName(String locationName) throws IOException, JSONException {
return new ServletWeatherAPI("q=" + URLEncoder.encode(locationName, "UTF-8"));
}
public static IWeatherAPI fromLatLon(double lat, double
lon) throws IOException, JSONException {
return new ServletWeatherAPI("lat=" + lat + "&lon=" + lon);
}
@Override
public double getTemperature() throws JSONException {
return weatherdata.getDouble("tempC");
}
@Override
public String getDescription() throws JSONException {
return weatherdata.getString("description");
}
@Override
public String getError() {
return "";
}
@Override
public String getProviderInfo() {
return "ServletWeatherService";
}
@Override
public String getIconPath() throws JSONException {
return "serlvetweatherservice/" +
weatherdata.getString("icon");
}
}
'Я знаю, как добавить в preferences.xml параметр '. Не понятно. Что вы имеете в виду? И почему вы не можете использовать его? – greenapps
Чтобы добавить опцию в меню настроек (ее набор в preferences.xml) в точке дизайна, это ясно для меня, но как запрограммировать это не так. – Eli
Непонятно, что вы хотите запрограммировать и с чем у вас проблемы. – greenapps