Это мой пользовательский адаптер. У меня есть три ImageViews здесь. Я хотел дать onclick для каждого изображения.
Сначала я вызвал метод при нажатии на ImageView. В этом методе мне нужно заменить на другое изображение. А также необходимо заменить оставшиеся два изображения Imageview также.
Теперь, когда я нажимаю на первое изображение, вызывается метод, и изображение также меняется. Но для оставшихся двух изображений, он показывает исключение NULL POINTER.
Как получить доступ к этим ImageViews в этом методе.
Любая помощь будет оценена.
public class CustomTestingProductsListAdapter extends BaseAdapter{
public CustomTestingProductsListAdapter(Context context, Activity activity, List<V_APP_PACK_QR_DET_INFO> pack_qr_det_infos) {
layoutInFlater = LayoutInflater.from(context);
this.pack_qr_det_infos = pack_qr_det_infos;
this.curActivity = activity;
this.mContext = (VilanApplication) VilanApplication.mContext;
}
@Override
public int getCount() {
return pack_qr_det_infos.size();
}
@Override
public Object getItem(int position) {
return pack_qr_det_infos.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
try{
CustomTestingProductsListAdapter.ViewHolder holder;
if(convertView == null){
holder = new CustomTestingProductsListAdapter.ViewHolder();
convertView = layoutInFlater.inflate(R.layout.tst_ver_prdouct_list_items,null);
holder.tvProduct = convertView.findViewById(R.id.tv_qc_productName);
holder.DLSno = convertView.findViewById(R.id.tvtst_DLSno);
holder.iv_tst_received = convertView.findViewById(R.id.iv_tst_received);
holder.iv_tst_not_received = convertView.findViewById(R.id.iv_tst_not_received);
holder.iv_tst_wrong_product = convertView.findViewById(R.id.iv_tst_wrong_product);
convertView.setTag(holder);
}else{
holder = (CustomTestingProductsListAdapter.ViewHolder) convertView.getTag();
}
holder.DLSno.setText(pack_qr_det_infos.get(position).PRODUCTSLNO);
holder.iv_tst_received.setOnClickListener(onClickListener(position));
}catch (Exception e){
Log.d(VilanConstants.TAG,"/Excp @listAdp"+ e.toString());
}
return convertView;
}
private View.OnClickListener onClickListener(final int position){
return new View.OnClickListener() {
@Override
public void onClick(View v) {
try {
CustomTestingProductsListAdapter.ViewHolder holder;
holder = new CustomTestingProductsListAdapter.ViewHolder();
holder.iv_tst_received = v.findViewById(R.id.iv_tst_received);
holder.iv_tst_not_received = v.findViewById(R.id.iv_tst_not_received);
holder.iv_tst_wrong_product = v.findViewById(R.id.iv_tst_wrong_product);
Toast.makeText(mContext, "Item Received" , Toast.LENGTH_SHORT).show();
holder.iv_tst_received.setImageResource(R.drawable.ic_received_green);
holder.iv_tst_not_received.setImageResource(R.drawable.ic_not_received);
holder.iv_tst_wrong_product.setImageResource(R.drawable.ic_wrong_product);
Status = 0 ;
}catch (Exception e){
Log.e(VilanConstants.TAG,"/Excp due to"+e.toString());
}
}
};
}
public class ViewHolder{
private TextView tvProduct;
private TextView DLSno;
private ImageView iv_tst_received;
private ImageView iv_tst_not_received;
private ImageView iv_tst_wrong_product;
}
}