Я написал функцию для заполнения различных представлений изображений в представлении переработчика, ничего плохого в том, что эта функция работает нормально.Но это слишком долго (скажем, если у меня есть 20 изображений).Я хочу сделать небольшую функцию и сделать ее СУХОЙ / многоразового использования.Но при этом я не могу понять, как передать изображение в качестве параметра в функции.Теперь, прежде чем начать заниматься голосованиями или разобраться в себе, четко подумайте о том, что я прошу, и ответьте, чтобы код можно было использовать повторно, не пытайтесь заставить его работать по-другому, потому что функция уже работает.
Объявление функции -
private void updateIcons(ViewHolder viewHolder) {
if (blockStatus == null || blockStatus.equals("not_blocked")) {
viewHolder.ivBlock.setImageResource(R.drawable.block);
} else if (blockStatus.equals("blocked")) {
viewHolder.ivBlock.setImageResource(R.drawable.unblocked);
}
if (hideStatus == null || hideStatus.equals("visible")) {
viewHolder.ivHide.setImageResource(R.drawable.hide);
} else if (hideStatus.equals("hidden")) {
viewHolder.ivHide.setImageResource(R.drawable.show);
}
if (notificationStatus == null || notificationStatus.equals("allowed")) {
viewHolder.ivMute.setImageResource(R.drawable.mute);
} else if (notificationStatus.equals("muted")) {
viewHolder.ivMute.setImageResource(R.drawable.unmute);
}
if (pinSequence == null || pinSequence.equals("none")) {
viewHolder.ivPin.setImageResource(R.drawable.pin);
} else if (pinSequence.equals("pinned")) {
viewHolder.ivPin.setImageResource(R.drawable.unpin);
}
if (privacyStatus == null || privacyStatus.equals("unlimited")) {
viewHolder.ivLimit.setImageResource(R.drawable.limit);
} else if (privacyStatus.equals("limited")) {
viewHolder.ivLimit.setImageResource(R.drawable.unlimited);
}
if (reportStatus == null || reportStatus.equals("not_reported")) {
viewHolder.ivReport.setImageResource(R.drawable.report);
} else if (reportStatus.equals("reported")) {
viewHolder.ivReport.setImageResource(R.drawable.reported);
}
}
Вызов функции -
updateIcons(viewHolder);
Вот что я пытаюсь сделать, но не могу передать повторно используемые изображения в качестве параметра в функцию.
private void updateIcons(ViewHolder viewHolder, String statusValue, String checkValue1, String checkValue2,
int image1, int image2) {
if (statusValue == null || statusValue.equals(checkValue1)) {
viewHolder.imageView.setImageResource(image1);
} else if (statusValue.equals(checkValue2)) {
viewHolder.imageView.setImageResource(image2);
}
}
Правильный ответ, основанный на предложении Майка М.
Функция
private void updateIcons(ImageView imageView, String statusValue, String checkValue1, String checkValue2,
int image1, int image2) {
if (statusValue == null || statusValue.equals(checkValue1)) {
imageView.setImageResource(image1);
} else if (statusValue.equals(checkValue2)) {
imageView.setImageResource(image2);
}
}
И затем ее вызов
updateIcons(viewHolder.ivBlock, blockStatus, "not_blocked" , "blocked",
R.drawable.block, R.drawable.unblocked);