Android - проблема getResources () и getPackageName () - PullRequest
1 голос
/ 21 января 2020

Я пытаюсь использовать setImageResources(), чтобы установить R.drawable. variable_image_file . Я понятия не имею, как это сделать, поэтому я немного искал и нашел это на многих форумах:

int resID = getResources().getIdentifier(character.getBmppath(), "drawable", getPackageName());
holder.pictureView.setImageResource(resID);

Но вот моя проблема, Android Studio, кажется, не распознает getResources() и getPackageName():

enter image description here

(в этом коде «domas.png» хранится в папке для рисования)

Я не могу найти решение онлайн, не могли бы вы помочь выяснить это?

Ответы [ 3 ]

1 голос
/ 21 января 2020

Попробуйте, если у вас нет контекста в адаптере.

int resId =holder.firstNameView.getContext().getResources().getIdentifier("domas", "drawable", holder.firstNameView.getContext().getPackageName());
1 голос
/ 21 января 2020

Передайте Context вашему классу и затем используйте getResources.

context.getResources().getIdentifier("domas", "drawable", context.getPackageName());

Я бы посоветовал вам настроить изображение таким образом

    holder.pictureView.setImageDrawable(
        ContextCompat.getDrawable(
            context,
            R.drawable.domas
        )
    )
0 голосов
/ 21 января 2020

Если он находится в вашей папке drawable, вам не нужно ничего делать причудливым, это должно работать после предоставления Context (я полагаю, вы можете легко преобразовать приведенное ниже значение в Java из Kotlin) :

context?.let {
     if (Build.VERSION.SDK_INT == Build.VERSION_CODES.M) {
           AppCompatResources.getDrawable(it, R.drawable.domas)
     } else {
           it.resources.getDrawable(R.drawable.domas, null)
     }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...