Android (константы)

1

Я проверил предложенные решения и не могу найти ответ. Если ответ там, то я сожалею, что разместил его снова.

Я потребляю услугу по обслуживанию wcf.

В моей тестовой деятельности я это делаю;

private final static String SERVICE_URI = "http://10.0.2.2/Service1.svc";

В конечном итоге это будет использоваться в различных видах деятельности.

Итак, что я хочу сделать: private final static String SERVICE_URI = [CONSTANT]

так что, если мне нужно переназначить службу где-то еще, одно обновление кода приведет к зависящим действиям, указывающим на правильное местоположение, позволяя им работать, вместо того, чтобы обновлять каждое действие.

Итак: как/где я могу создать такую константу в Android, и как бы мне это сделать?

Большое спасибо за любую помощь.

  • 0
    Вам действительно нужно, чтобы эта константа была "финальной" ... потому что java-компилятор интерпретирует мою константу компиляции последней строки ... поэтому фактическое значение копируется везде, где вы его используете ... они не ссылаются на него ... путем удаления финального компилятора предоставит ссылку на то, где вы его используете .... Не знаю, если это то, что вы ожидаете.
  • 0
    Если честно; Я не знаю. Я должен был сказать наверху, что я - разработчик VB, пытающийся разработать приложение для Android для сайта клиента, и я учусь на ходу ...
Показать ещё 1 комментарий
Теги:

3 ответа

2
Лучший ответ

Из того, что вы описываете, это звучит так, как будто вам нужно посмотреть на String Resources.

Вы можете в любой момент получить доступ к ним из любого компонента вашего приложения Android, и они эффективно "постоянны" во время сборки.

EDIT Просто чтобы расширить использование ресурсов...

... взгляните на ответ Дороро. Все ресурсы (строки, изображения/чертежи и даже элементы пользовательского интерфейса, такие как кнопки и т.д.) Доступны с помощью "идентификаторов ресурсов". Любой resId, т.е. R.blah представляет собой int, представляющий ресурс. Таким образом, его нужно правильно выбрать.

С элементами пользовательского интерфейса мы используем findViewById(...) а с помощью строк мы используем getString(...) как в примере Dororo.

Моя точка зрения заключалась в том, что строки постоянны во время сборки, поэтому нет необходимости объявлять какую-либо переменную как final static, представляющую строковый ресурс как часть любого класса, например Activity потому что вы можете получить доступ к любой строке с помощью Context.getString(...) как показано в ссылке.

  • 0
    Я создал файл values / constants.xml, который не работал. Поэтому я добавил <string name = "CONST_RestService"> 10.0.2.2/Service1.svc </ string > к значениям / strings.xml, но закрытый final static static String SERVICE_URI = R.string.CONST_RestService; возвратил ошибку «невозможно преобразовать int в строку»
  • 1
    Немного почитайте о строковых ресурсах - вы не можете их так использовать, причина в том, что R.string.CONST_RestService имеет R.string.CONST_RestService int , потому что это идентификатор, который вы затем можете использовать для поиска значения ресурса. Если вы посмотрите на ссылку MisterSquonk и посмотрите на пример для String, вы увидите пример, показывающий, как искать строковый ресурс из кода.
Показать ещё 2 комментария
5

Альтернативой 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. Если вы используете этот подход, вы можете использовать его в любом месте, даже если контекст или приложение недоступны для вас.

  • 1
    Продолжая класс Constants, вы можете переключать свои окончательные константы во время сборки с помощью Ant: blog.blundell-apps.com/…
1

Когда вы хотите изменить эту строку?

Если вы хотите изменить его динамически, не выпуская обновлений для программы, вы захотите установить его глобально, а затем создать функции для его редактирования, которые могут быть вызваны всякий раз, когда вы хотите изменить адрес.

Если вы счастливы только когда-либо изменять его, когда программа обновляется (что не все пользователи обязательно помнят), тогда вы захотите установить его как строковый ресурс или просто установить его глобально и пощечину в 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>

Ещё вопросы

Сообщество Overcoder
Наверх
Меню