mproduct.remove(position)或notifyDataSetChange()在getView方法中不起作用

时间:2017-06-10 18:43:55

标签: android arraylist

我检查了大部分地方,但我无法得到这个问题的确切答案。

功能问题: getView

问题是什么:如果条件成立,

mproduct.remove((位置));                 的 notifyDataSetChanged();

这两个声明都假设有效。 //这里mproduct是ArrayList的对象;                     如果我写Log.e();它显示promt消息。

提前致谢。

  {
        public class DataAdapterCheckOut extends BaseAdapter {
        Context context;
        ArrayList<CheckOutProduct> mproduct;

        public DataAdapterCheckOut(Context context, ArrayList<CheckOutProduct> 
        product){
           // super(context, R.layout.activity_list_product, product);
            this.context=context;
            this.mproduct=product;
        }

        public  class  Holder{
            TextView nameFV, mrpFV, our_priceFV, weightFv, unitFV, countFV;
            ImageView pic;
            int countTemp=1,mrp=0,ourPrice=0;
            String name;
            Button btnAdd, btnSubstract, btnAddCart;
        }

        @Override
        public int getCount() {

            return mproduct.size();
        }

        @Override
        public Object getItem(int position) {

            return mproduct.get(position);
        }

        @Override
        public long getItemId(int position) {

            return position;
        }

        @Override
        public View getView(int position, View convertView, ViewGroup parent) {

            final CheckOutProduct checkOutProduct = mproduct.get(position);
            // Check if an existing view is being reused, otherwise inflate the view
            SharedPreferences prefs = context.getSharedPreferences("MNA", 
         Context.MODE_PRIVATE);
            String personalEmail    = prefs.getString("personalEmail", null);
            String mobTemp          = prefs.getString("MNAF", null);
            final Holder viewHolder; // view lookup cache stored in tag
                if (convertView == null) {
                    viewHolder = new Holder();
                    LayoutInflater inflater = LayoutInflater.from(context);
                    convertView = inflater.inflate(R.layout.activity_list_product, 
        parent, false);

                    viewHolder.nameFV = (TextView) 
        convertView.findViewById(R.id.txtNameViewer);
                    //viewHolder.idFV         = (TextView) 
        convertView.findViewById(R.id.txtIdViewer);
                    viewHolder.mrpFV = (TextView) 
        convertView.findViewById(R.id.txtMrpViewer);
                    viewHolder.our_priceFV = (TextView) 
        convertView.findViewById(R.id.txtOurPriceViewer);
                    viewHolder.weightFv = (TextView) 
        convertView.findViewById(R.id.txtWeightViewer);
                    viewHolder.unitFV = (TextView) 
        convertView.findViewById(R.id.txtUnitViewer);
                    viewHolder.countFV = (TextView) 
        convertView.findViewById(R.id.txtViewProductCount);
                    viewHolder.pic = (ImageView) 
        convertView.findViewById(R.id.imgView);
                    viewHolder.btnAdd = (Button) 
        convertView.findViewById(R.id.buttonAdd);
                    viewHolder.btnSubstract = (Button) 
        convertView.findViewById(R.id.buttonSubstract);
                    viewHolder.btnAddCart = (Button) 
        convertView.findViewById(R.id.buttonAddCart);
                    convertView.setTag(viewHolder);
                } else {
                        viewHolder = (Holder) convertView.getTag();
                }

                        viewHolder.nameFV.setText(checkOutProduct.get_name());
                        viewHolder.name = checkOutProduct.get_name();
                        viewHolder.mrpFV.setText("MRP : " + 
         checkOutProduct.getMrp());
                        viewHolder.mrp = checkOutProduct.getMrp();
                        viewHolder.our_priceFV.setText("Our Price : " + 
        checkOutProduct.getOurPrice());
                        viewHolder.ourPrice = checkOutProduct.getOurPrice();
                        viewHolder.weightFv.setText(checkOutProduct.getWeight());
                        viewHolder.unitFV.setText(" " + checkOutProduct.getUnit());

        viewHolder.pic.setImageBitmap(convertToBitmap(checkOutProduct.getImage()));
                        viewHolder.countFV.setText("" + 
        checkOutProduct.get_quantity());
                        viewHolder.countTemp = checkOutProduct.get_quantity();
                        viewHolder.btnAdd.setOnClickListener(new 
        View.OnClickListener() {

                            @Override
                            public void onClick(View v) {
                                viewHolder.countTemp++;
                                viewHolder.countFV.setText("" + 
        viewHolder.countTemp);
                            }
                        });
                        viewHolder.btnSubstract.setOnClickListener(new 
        View.OnClickListener() {
                            @Override
                            public void onClick(View v) {
                                viewHolder.countTemp--;
                                if (viewHolder.countTemp >= 1)
                                    viewHolder.countFV.setText("" + 
        viewHolder.countTemp);
                                else {
                                    Toast.makeText(context, "Sorry Item Count at 
        least 1", Toast.LENGTH_LONG).show();
                                    viewHolder.countTemp = 1;
                                }
                            }
                        });
                        viewHolder.btnAddCart.setOnClickListener(new 
        View.OnClickListener() {
                            @Override
                            public void onClick(View v) {
                                Log.e("B", "Added into Cart");
                                SharedPreferences prefs = 
        context.getSharedPreferences("MNA", Context.MODE_PRIVATE);
                                String personalEmail = 
        prefs.getString("personalEmail", null);
                                CheckOutDBHelper checkOutDBHelper1 = new 
        CheckOutDBHelper(context);
                                checkOutDBHelper1.addCheckOutInformation(new 
        CheckOutProduct(personalEmail, checkOutProduct.get_name(), 
        checkOutProduct.getID(), checkOutProduct.getMrp(), 
        checkOutProduct.getOurPrice(), checkOutProduct.getWeight(), 
        checkOutProduct.getUnit(), checkOutProduct.getImage(), 
        viewHolder.countTemp));

                            }
                        });
                UserDBHelper userDBHelper         = new UserDBHelper(context);

        if(personalEmail!=null&&!personalEmail.equals(checkOutProduct.get_gmail())) 
        {
                        mproduct.remove(position);
                        notifyDataSetChanged();
                    }
                if (mobTemp!=null&&!userDBHelper.getEmailId(mobTemp).equals(checkOutProduct.get_gmail())){
                        mproduct.remove((`enter code here`position));
                        notifyDataSetChanged();


    enter code here
                    }
            return convertView;
        }
        //get bitmap image from byte array

        private Bitmap convertToBitmap(byte[] b){

            return BitmapFactory.decodeByteArray(b, 0, b.length);

        }

    }
    }

0 个答案:

没有答案