Я проверил предложенные решения и не могу найти ответ. Если ответ там, то я сожалею, что разместил его снова.
Я потребляю услугу по обслуживанию wcf.
В моей тестовой деятельности я это делаю;
private final static String SERVICE_URI = "http://10.0.2.2/Service1.svc";
В конечном итоге это будет использоваться в различных видах деятельности.
Итак, что я хочу сделать: private final static String SERVICE_URI = [CONSTANT]
так что, если мне нужно переназначить службу где-то еще, одно обновление кода приведет к зависящим действиям, указывающим на правильное местоположение, позволяя им работать, вместо того, чтобы обновлять каждое действие.
Итак: как/где я могу создать такую константу в Android, и как бы мне это сделать?
Большое спасибо за любую помощь.
Из того, что вы описываете, это звучит так, как будто вам нужно посмотреть на String Resources.
Вы можете в любой момент получить доступ к ним из любого компонента вашего приложения Android, и они эффективно "постоянны" во время сборки.
EDIT Просто чтобы расширить использование ресурсов...
... взгляните на ответ Дороро. Все ресурсы (строки, изображения/чертежи и даже элементы пользовательского интерфейса, такие как кнопки и т.д.) Доступны с помощью "идентификаторов ресурсов". Любой resId, т.е. R.blah
представляет собой int, представляющий ресурс. Таким образом, его нужно правильно выбрать.
С элементами пользовательского интерфейса мы используем findViewById(...)
а с помощью строк мы используем getString(...)
как в примере Dororo.
Моя точка зрения заключалась в том, что строки постоянны во время сборки, поэтому нет необходимости объявлять какую-либо переменную как final static
, представляющую строковый ресурс как часть любого класса, например Activity
потому что вы можете получить доступ к любой строке с помощью Context.getString(...)
как показано в ссылке.
R.string.CONST_RestService
имеет R.string.CONST_RestService
int
, потому что это идентификатор, который вы затем можете использовать для поиска значения ресурса. Если вы посмотрите на ссылку MisterSquonk и посмотрите на пример для String, вы увидите пример, показывающий, как искать строковый ресурс из кода.
Альтернативой String Resources вы можете сделать это путем создания класса Constants и поместить его постоянное значение. Этот метод не совсем специфичен для Android, но это практика, которая часто используется сообществом Java.
public class Constants {
public final static String SERVICE_URI = "http://10.0.2.2/Service1.svc";
}
И ссылайтесь на него в другой Activity/classes как Constants.SERVICE_URI. Если вы используете этот подход, вы можете использовать его в любом месте, даже если контекст или приложение недоступны для вас.
Когда вы хотите изменить эту строку?
Если вы хотите изменить его динамически, не выпуская обновлений для программы, вы захотите установить его глобально, а затем создать функции для его редактирования, которые могут быть вызваны всякий раз, когда вы хотите изменить адрес.
Если вы счастливы только когда-либо изменять его, когда программа обновляется (что не все пользователи обязательно помнят), тогда вы захотите установить его как строковый ресурс или просто установить его глобально и пощечину в final
. Чтобы получить доступ к строке из ресурса String, используйте:
context.getString(R.string.resource_name)
application.getString(R.string.resource_name)
Чтобы создать ресурс строки, откройте /res/values/strings.xml и создайте новую строку, используя:
<string name="resource_name">whatever web address here</string>