RecyclerView를 사용하여 Image 및 TextView를 원시 항목으로 포함하는 데이터를 표시했습니다.recyclerview 어댑터에서 이미지가 변경되었습니다.
내 어댑터 클래스는 다음과 같습니다 :
public class MyAdapter extends RecyclerView.Adapter<MyAdapter.RecyclerViewHolders> {
private List<MyModel> itemList;
private Context context;
private DisplayImageOptions displayImageOptions;
public MyAdapter(Activity context, List<MyModel> itemList) {
this.itemList = itemList;
this.context = context;
}
@Override
public RecyclerViewHolders onCreateViewHolder(ViewGroup parent, int viewType) {
View layoutView = LayoutInflater.from(parent.getContext()).inflate(R.layout.singleview_grid_location, null);
RecyclerViewHolders rcv = new RecyclerViewHolders(layoutView);
return rcv;
}
@Override
public void onBindViewHolder(final RecyclerViewHolders holder, final int position) {
holder.rl_main.setTag(position);
final MyModel mainModel = itemList.get((int) holder.rl_main.getTag());
if (mainModel.is_selected()) {
holder.rl_main.setBackgroundResource(R.drawable.border_theme);
holder.iv_selection.setVisibility(View.VISIBLE);
} else {
holder.rl_main.setBackgroundColor(Color.parseColor("#FFFFFF"));
holder.iv_selection.setVisibility(View.GONE);
}
holder.txt_location_name.setText(mainModel.getLocationName());
if (mainModel.getImagePath() != null && !mainModel.getImagePath().equals("")) {
Constant.getImageLoader().displayImage(mainModel.getImagePath(),
holder.iv_location_photo, Constant.getInstanceImageOptions(R.mipmap.popup_placeholder), new SimpleImageLoadingListener() {
@Override
public void onLoadingStarted(String imageUri, View view2) {
}
@Override
public void onLoadingFailed(String imageUri, View view2, FailReason failReason) {
holder.iv_location_photo.setImageResource(R.mipmap.popup_placeholder);
}
@Override
public void onLoadingComplete(String imageUri, View view2, Bitmap loadedImage) {
}
});
}
holder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (mainModel.is_selected()) {
mainModel.setIs_selected(false);
} else {
mainModel.setIs_selected(true);
}
itemList.set(position, mainModel);
notifyDataSetChanged();
}
});
}
@Override
public int getItemCount() {
return this.itemList.size();
}
public class RecyclerViewHolders extends RecyclerView.ViewHolder {
public TextView txt_location_name;
public ImageView iv_location_photo;
public CardView card_view;
public ImageView iv_selection;
public RelativeLayout rl_main;
public RecyclerViewHolders(View itemView) {
super(itemView);
txt_location_name = (TextView) itemView.findViewById(R.id.txt_location_name);
iv_location_photo = (ImageView) itemView.findViewById(R.id.iv_location_photo);
card_view = (CardView) itemView.findViewById(R.id.card_view);
iv_selection = (ImageView) itemView.findViewById(R.id.iv_selection);
rl_main = (RelativeLayout) itemView.findViewById(R.id.rl_main);
}
}
}
문제는 내가 Recyclerview의보기를 클릭하고 때, 이미지가 변경있어 점이다. 예, 텍스트 뷰와 제 선택은 동일하고 정확합니다. 문제는보기를 위해 이미지가 변경되었습니다.
무슨 문제 일 수 있습니까? 제발, 체크 아웃. 감사.
onLoadingComplete 이미지가 변경되지 않으십니까? – Anonymous
오류가있는 경우를 제외하고 어디에도 이미지를 설정하지 않습니다. – nomag
@nomag 범용 이미지 로더 및 이미지 사용이 성공적으로 설정되었습니다. 원시 상품을 클릭하면 이미지가 변경됩니다. –