Как управлять региональной конфигурацией в приложении Android - PullRequest
0 голосов
/ 23 февраля 2019

Исходя из настроек страны клиента (которые они устанавливают в приложении), мне нужно использовать одну из трех региональных конфигураций.Например: выберите региональную конечную точку облака для удара.

Android поддерживает несколько файлов resource.xml, но они выбираются в зависимости от локали.Но в моем случае я хочу выбрать их в зависимости от настроек клиента.

Я могу использовать все конфигурации конечных точек в единственном файле resources.xml, например:

<resources>
    <string name="my_endpoint_us">https://usa-endpoint.mysite.com</string>
    <string name="my_endpoint_eu">https://europe-endpoint.mysite.com</string>
    <string name="my_endpoint_apj">https://asia-endpoint.mysite.com</string>
</resources>

И сформулировать имя конфигурации на основе пользовательских настроек, но это выглядит неуклюже:

myResources.getString(
    it.getIdentifier("my_endpoint" + customer.region, "string", "com.mypackage")
)

1 Ответ

0 голосов
/ 23 февраля 2019

Вы можете попытаться передать значение региона в качестве параметра для вашего строкового ресурса

<string name="my_endpoint">https://%1$s-endpoint.mysite.com</string>

, а затем получить значение конечной точки следующим образом:

String endpoint = getString(R.string.my_endpoint, customer.region)

Так что здесьу вас есть только одна строка в вашем strings.xml файле, но здесь есть слабое место, если конечная точка для каждого региона не имеет этого ключа.

...