Как привести переменную в ссылку R.array. *? - PullRequest
0 голосов
/ 03 апреля 2019

поэтому я пытаюсь сделать оператор if / then, и в результате получаю либо R.array.measurements, либо R.array.currency.И «измерения», и «валюта» относятся к двум массивам в файле strings.xml.Он ожидает целочисленное значение, поэтому я попытался разобрать как целое число, но это не работает.

То, что я пытаюсь сделать, - это если isMeasurement == false, отобразить ListView в виде списка измерений, а если isMeasurement == true, то он покажет список валют.Все остальное, насколько я знаю, работает.Спасибо за любую помощь:)

Это то, что я пробовал:

private String unitType;
    Boolean isMeasurement = false;
            if(isMeasurement){
                unitType = "R.array.measurements"; 
            } else {
                unitType = "R.array.currency";
            }
            ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this, Integer.parseInt(unitType), android.R.layout.simple_spinner_item);

Это мой оригинальный код:

private String unitType;
    Boolean isMeasurement = false;
            if(isMeasurement){
                unitType = "R.array.measurements";
            } else {
                unitType = "R.array.currency";
            }
            ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this, R.array.measurements, android.R.layout.simple_spinner_item);

1 Ответ

1 голос
/ 03 апреля 2019

Вы пробовали getResourses().getString(R.array.measurements);?Это даст вам реальную стоимость R.array.measurements.Прямо сейчас вы просто присваиваете строковый литерал.

В качестве альтернативы, если вам нужно целочисленное значение, тогда R.array.measurements без кавычек даст вам целочисленный идентификатор.

...