我有一个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));
}
我需要使其具有动态性,例如,每种心情都有一个数字1 =快乐,2 =良好,等等
因此,当回收者视图正在显示日志中的信息时,它可以显示正确的带有已应用颜色的心情图标。
有人可以帮我编写代码的逻辑吗?我在撞墙。
编辑:我上面编写的方式在if语句中起作用。但这将需要18个if语句。是否有一种轻松的方式编写此代码,也许使用arraylist和for循环?
我自己解决了这个问题。我创建了心情图标和颜色的数组列表。然后我使用了这段代码:
for (MoodIconsWorkoutLog moodBefore : moodIcons) {
if(moodBefore.getMoodBefore() == currentLog.getMoodBefore() ){
holder.moodIcon.setImageResource(moodBefore.getMoodImage());
holder.moodIcon.setColorFilter(moodBefore.getColour());
}
}
完美运作