2017-02-09 8 views
0

Здравствуйте, всем вам, специалистам по 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"); 
} 

}

+0

'Я знаю, как добавить в preferences.xml параметр '. Не понятно. Что вы имеете в виду? И почему вы не можете использовать его? – greenapps

+0

Чтобы добавить опцию в меню настроек (ее набор в preferences.xml) в точке дизайна, это ясно для меня, но как запрограммировать это не так. – Eli

+0

Непонятно, что вы хотите запрограммировать и с чем у вас проблемы. – greenapps

ответ

0

Я нашел решение, если кто-то будет интересно, вот мой мерзавец: MultiWeatherApp