Как я могу использовать переменную с R.raw.myVar - PullRequest
0 голосов
/ 09 декабря 2018

Я хочу раскрасить страну с помощью API GoogleMaps.Этот код работает, но я использую панель поиска, где пользователь может написать другое название страны.

private void colorCountry(String searchString){
    String myVar = searchString + "_geojson";
    Toast.makeText(this, searchString , Toast.LENGTH_SHORT).show();
    try {
        GeoJsonLayer layer = new GeoJsonLayer(nMap, R.raw.france_geojson, getApplicationContext());
        GeoJsonPolygonStyle style = layer.getDefaultPolygonStyle();
        style.setFillColor(Color.BLUE);
        style.setStrokeColor(Color.BLUE);
        style.setStrokeWidth(1F);
        layer.addLayerToMap();
    } catch (IOException ex) {
        Log.e("IOException", ex.getLocalizedMessage());
    } catch (JSONException ex) {
        Log.e("JSONException", ex.getLocalizedMessage());
    }
}

Как заменить "france_geojson" на переменную "myVar" в GeoJsonLayer?

GeoJsonLayer layer = new GeoJsonLayer(nMap, R.raw.france_geojson, getApplicationContext());

1 Ответ

0 голосов
/ 09 декабря 2018

Используйте это:

int rawId = getApplicationContext()
            .getResources()
            .getIdentifier(myVar, "raw", getApplicationContext().getPackageName());

, чтобы получить идентификатор myVar, а затем:

GeoJsonLayer layer = new GeoJsonLayer(nMap, rawId, getApplicationContext());
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...