Android Отображение настраиваемого изображения RecyclerView - PullRequest
0 голосов
/ 06 мая 2020

У меня есть recyclerview , который отображает данные из базы данных SQLite. У меня есть список значков, которые я сохраняю в ArrayList и применяю к ним цвет внутри ArrayList.

  Example:         mMoodIcons.add(new MoodIcons(R.drawable.excited_icon,  R.mipmap.background_clouds_excited, ContextCompat.getColor(mContext, R.color.excited), mContext.getString(R.string.excited)));

В recycerview у меня есть этот код:

   if(currentLog.getMoodBefore() == 3){
        holder.moodIcon.setImageResource(R.drawable.confident_icon);
        holder.moodIcon.setColorFilter(ContextCompat.getColor(mContext, R.color.confident));
    }

Мне нужно чтобы сделать его динамичным c так, например, каждое настроение имеет номер 1 = счастье, 2 = хорошо, и т. д. c

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

Может ли кто-нибудь помочь мне с логи c написать этот код? Я врезаюсь в стену.

РЕДАКТИРОВАТЬ: То, как я написал выше, работает в операторе if. Но для этого потребуется 18 операторов if. Есть ли более изящный способ написать это, может быть, используя arraylist и a for l oop?

1 Ответ

0 голосов
/ 06 мая 2020

Я решил это сам. Я создал арайлист иконок настроения и цветов. Затем я использовал этот код:

 for (MoodIconsWorkoutLog moodBefore : moodIcons) {

        if(moodBefore.getMoodBefore() == currentLog.getMoodBefore() ){
            holder.moodIcon.setImageResource(moodBefore.getMoodImage());
            holder.moodIcon.setColorFilter(moodBefore.getColour());
        }
    }

Работал отлично

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...