Parse int предназначен для разбора строк типа "0", "100" и т. Д. И не имеет ничего общего с тем, чего вы пытаетесь достичь. Вы должны использовать идентификатор рисования напрямую:
holder.icon.setImageResource(R.drawable.icon);
Если по какой-либо причине вы не можете использовать константу, правильный способ получения идентификатора для рисования будет:
Context context = getContext(); //obtain a context
int drawableId = context.getResources().getIdentifier("icon", "drawable", context.getPackageName());
Но это совсем не хорошая практика и указывает на то, что у вас есть проблемы с дизайном приложения.