Java servlet气象服务的服务器地址或IP目前仍然是硬编码的

Java servlet气象服务的服务器地址或IP目前仍然是硬编码的,java,android,web-services,servlets,sharedpreferences,Java,Android,Web Services,Servlets,Sharedpreferences,大家好,Java和Android专家们,我真的可以利用你们的帮助为我的学校做一些项目,因为我没有任何线索 在活动ServletWeatherAPI中,ServletWeatherService的服务器地址或IP当前仍然是硬编码的,例如: 在MultiWeatherApp的设置选项卡中,我需要添加一个选项来指定我的服务器的地址或IP(不带servlet路径)/WeatherService/ 天气?)。 此气象服务的web请求应使用存储在SharedReferences中的地址 有人知道我该怎么

大家好,Java和Android专家们,我真的可以利用你们的帮助为我的学校做一些项目,因为我没有任何线索

在活动ServletWeatherAPI中,ServletWeatherService的服务器地址或IP当前仍然是硬编码的,例如:

在MultiWeatherApp的设置选项卡中,我需要添加一个选项来指定我的服务器的地址或IP(不带servlet路径)/WeatherService/ 天气?)。 此气象服务的web请求应使用存储在SharedReferences中的地址

有人知道我该怎么做吗?因为我没有。 我知道如何将该选项添加到preferences.xml中,但不知道其他选项。 我从github附加我的项目和ServletWeatherAPI调用。 任何帮助都将不胜感激,我不是专家,所以伪代码将非常有助于理解它。

}


如果有人感兴趣,我已经找到了解决方案,这是我的git:

我知道如何将选项添加到preferences.xml中。不清楚的。什么意思?为什么你不能使用它呢?在它的设计点中添加设置菜单(在preferences.xml中设置)的选项我很清楚,但如何编程却不清楚。不清楚你想要编程什么以及你有什么问题。我会更清楚地说:那么你很难更改baseUrl?只需添加一个baseUrl参数,就可以在构造函数中实现这一点。将
private ServletWeatherAPI(字符串queryString)
更改为
private ServletWeatherAPI(字符串baseUrl,字符串queryString)
。并在构造函数成员中添加“this.baseUrl=baseUrl;”在此之后,您将看到您应该声明baseUrl不同于
私有最终静态字符串baseUrl
Private final static String baseURL = "http://192.168.178.21:8080/WeatherService/weather? ";         
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");
}