Как вызвать Resource_name с помощью строковой переменной?

Я хотел бы заменить ImageView по умолчанию на произвольный файл с возможностью рисования. Я пытаюсь использовать строку, которая будет вызывать имя_ресурса в java с переменной строкой, которая изменяется в зависимости от ввода пользователя.

Код JAVA

String random1 = userinput_1;
String random2 = userinput_2;
String replaceImageView = (random1+"_"+random2);
orignalImageView.setImageResource(R.drawable.replaceImageView);

person Shawn    schedule 09.10.2017    source источник
comment
Майк М, не могли бы вы помочь применить логику из этого вопроса к моему. Я заблудился и занимаюсь этой проблемой больше недели, и я не понимаю, как эти вопросы мне помогают.   -  person Shawn    schedule 10.10.2017


Ответы (1)


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

String random1 = userinput_1;
String random2 = userinput_2;
String replaceImageView = (random1+"_"+random2);
int drawableResourceId = this.getResources().getIdentifier(replaceImageView, "drawable", this.getPackageName());
orignalImageView.setImageResource(drawableResourceId);
person Alirio Mendes    schedule 09.10.2017
comment
Я безуспешно пытался использовать Drawable ResourceId как int и String. Студия Android высвечивает R.drwable. ** drawableResourceId) ** как ошибку. Я не уверен, почему я здесь делаю что-то не так. Следует ли мне по-другому называть файл с возможностью рисования? - person Shawn; 10.10.2017
comment
Вам не нужен R.drwable., Просто drawableResourceId, вам просто нужно убедиться, что String replaceImageView точно соответствует имени ресурса. - person Alirio Mendes; 10.10.2017
comment
Это спасибо Алирио - person Shawn; 12.10.2017