无法从ListView

时间:2016-10-21 12:57:12

标签: android

//我有两个增加和减少数量的按钮,在增加或减少我想要从每一行计算价格的值之后但它没有给出正确的值。滚动时数量也会改变。上面说的很多只要listview的大小超过屏幕大小,就会出现问题。

public class Baseddapter扩展了BaseAdapter     {         @覆盖         public int getCount()         {             return prodetailarray.size();         }

    @Override
    public Object getItem(int i)
    {
        // Log.d("item_value",""+prodetailarray.get(i).getPrice());
        return null;
    }

    @Override
    public long getItemId(int i)
    {
        return 0;
    }
    @Override
    public View getView(int position, View convertView, ViewGroup parent)

    {
         listrowposition = position;
         final ViewHolder holder;

        if (convertView == null)
        {
            LayoutInflater inflater = getLayoutInflater();
            convertView = inflater.inflate(R.layout.singlerowbill_detail, null);
            holder = new ViewHolder();

            holder.name = (TextView) convertView.findViewById(R.id.txtproname_prodetail);
            holder.sellprice = (TextView) convertView.findViewById(R.id.txtprice_prodetail);
            holder.proid = (TextView) convertView.findViewById(R.id.txtproid_prodetail);

            holder.qty = (TextView) convertView.findViewById(R.id.txtquntty_prodetail);

            holder.imgplus = (ImageView) convertView.findViewById(R.id.imgplus_prodetail);
            holder.imgminus = (ImageView) convertView.findViewById(R.id.imgminus_prodetail);
            holder.singlerowprice = (TextView) convertView.findViewById(R.id.txtsinglerow_price);
            holder.baseprice = (TextView) convertView.findViewById(R.id.txt_base_price_prodetail);

            holder.taxid = (TextView) convertView.findViewById(R.id.txt_taxid_prodetail);
            holder.taxname = (TextView) convertView.findViewById(R.id.txt_taxname_prodetail);
            holder.taxval = (TextView) convertView.findViewById(R.id.txt_taxval_prodetail);

            // holder.singlerowprice.addTextChangedListener(new MytextWatcher(convertView));

            holder.delete = (ImageView) convertView.findViewById(R.id.txtdeleterow);
            holder.txtkg = (TextView) convertView.findViewById(R.id.txtkg);
            holder.whole_qntty = (TextView) convertView.findViewById(R.id.txt_whole_qntty_prodetail);

            holder.delete.setTag(position);
            holder.circularImageView = (CircularImageView) convertView.findViewById(R.id.productImage_billdetail);
            holder.linearLayout = (LinearLayout) convertView.findViewById(R.id.linearkg);


            holder.name.setTypeface(light);
            holder.singlerowprice.setTypeface(light);
            holder.baseprice.setTypeface(light);
            holder.qty.setTypeface(light);

            //holder.qty.setTag(position);

            convertView.setTag(holder);
        }
        else
        {
            holder = (ViewHolder) convertView.getTag();
        }

        base_price = prodetailarray.get(listrowposition).getBaseprice();

        Log.d("baseprice==", "***" + base_price);
        holder.baseprice.setText(prodetailarray.get(listrowposition).getBaseprice());


        //this means if qnty contain only number means add as unit otherwise add as kg
        if(prodetailarray.get(listrowposition).getQntity().matches("[0-9]+"))
        {
            holder.qty.setText(prodetailarray.get(position).getQntity());
            //holder.linearLayout.setVisibility(View.VISIBLE);
            holder.imgplus.setVisibility(View.VISIBLE);
            holder.imgminus.setVisibility(View.VISIBLE);
           // holder.txtkg.setVisibility(View.GONE);
            Log.d("qntty_kg??",""+prodetailarray.get(listrowposition).getQntity());
        }
        else
        {
          //  holder.linearLayout.setVisibility(View.GONE);
            holder.imgplus.setVisibility(View.GONE);
            holder.imgminus.setVisibility(View.GONE);
          //  holder.txtkg.setVisibility(View.VISIBLE);
            holder.qty.setText(""+prodetailarray.get(listrowposition).getQntity());
            Log.d("qntty_kg==",""+prodetailarray.get(listrowposition).getQntity());
           // Toast.makeText(Bill_details.this,""+prodetailarray.get(position).getQntity(),Toast.LENGTH_LONG).show();
        }

        holder.name.setText(prodetailarray.get(listrowposition).getProductname());
        holder.sellprice.setText(getResources().getString(R.string.Rs)+" "+prodetailarray.get(position).getPrice());
        holder.taxid.setText(prodetailarray.get(listrowposition).getTaxid());
        holder.taxname.setText(prodetailarray.get(listrowposition).getTaxname());
        holder.taxval.setText(prodetailarray.get(listrowposition).getTaxvalue());
        holder.whole_qntty.setText(prodetailarray.get(listrowposition).getWhole_qntty());

        holder.proid.setText(prodetailarray.get(listrowposition).getProducuid());

        final String str=prodetailarray.get(listrowposition).getQntity();
        Double q = Double.parseDouble(str.replaceAll("KG", ""));

        holder.singlerowprice.setText(getResources().getString(R.string.Rs)+" " + Double.parseDouble(prodetailarray.get(listrowposition).getPrice()) * q);

        drawable = mDrawableBuilder.build(String.valueOf(holder.name.getText().toString().trim().toUpperCase().charAt(0)),
                mColorGenerator.getColor((holder.name.getText().toString().trim().charAt(0))));

        holder.circularImageView.setImageDrawable(drawable);

        holder.delete.setOnClickListener(new View.OnClickListener()
        {
            @Override
            public void onClick(View view)
            {
                total_item = totalquantity-1;
                totalquantity=total_item;

                Integer index = (Integer) view.getTag();
                Log.d("indexval==","delete"+index.intValue());
                prodetailarray.remove(index.intValue());
                adapter.notifyDataSetChanged();
                listView.invalidateViews();

                Log.d("listCount==",""+listView.getCount());
                //  totalprice=0;
                Double add = 0.0;
                Double pr = 0.0;

               // listView.invalidateViews();
                if (listView.getCount() == 0)
                {
                    totalitem.setText("0 Items");
                    totalamount.setText( getResources().getString(R.string.Rs)+" 0");
                    editor.remove("count");
                    editor.remove("price");
                    editor.commit();
                }

              Log.d("liistvisiblepos==",""+(listView.getLastVisiblePosition()-listView.getFirstVisiblePosition())) ;
                for (int i = 0; i < listView.getCount(); i++)
                {

                   // this if is for  after delete item it will take first item so we dont want like this
                     if(index.intValue() != i)
                    {
                      /*  View v = listView.getChildAt(i);
                        TextView tvquan = (TextView) v.findViewById(R.id.txtquntty_prodetail);
                        TextView tvprice = (TextView) v.findViewById(R.id.txtsinglerow_price);

* /

                        String str = holder.qty.getText().toString().trim();
                        Double p = Double.parseDouble(str.replaceAll(getResources().getString(R.string.Rs), ""));
                        pr = pr + p;

                        totalitem.setText("" + total_item + " Items");
                        totalamount.setText(getResources().getString(R.string.Rs) + " " + pr);

                       // Log.d("listitemcount==", "tvquan==" + tvquan.getText().toString() + "add==" + add + "price" + pr + "p==" + p);
                    }
                }
            }
        });

        holder.imgplus.setOnClickListener(new View.OnClickListener()
        {
            @Override
            public void onClick(View view)
            {
                View v1=view;
                PLUSMINUS = 100;
                if(holder.qty.getText().toString().matches("[0-9]+"))
                {
                  plus_qnty = Integer.parseInt(holder.qty.getText().toString());
                    Log.d("plus_qnty==",""+plus_qnty);


                    //this is for check the quantity that useer enter is not more than  qntty in stock
                    Log.d("whole_qnt_plus==",""+holder.whole_qntty.getText().toString());

                         whole_qnt= Integer.parseInt(holder.whole_qntty.getText().toString());
                         Log.d("whole_qnt_plus==",""+whole_qnt);

                    plus_qnty = plus_qnty + 1;

                    if(plus_qnty>whole_qnt)
                    {
                        Toast.makeText(getApplicationContext(), getResources().getString(R.string.outofstock), Toast.LENGTH_LONG).show();

                    }
                    else
                    {
                        prodetailarray.get(listrowposition).setQntity(String.valueOf(plus_qnty));
                        holder.qty.setText("" + plus_qnty);

                        //remove all the text except price (integer value)
                        String str=holder.sellprice.getText().toString().trim();
                        Double sell_price= Double.parseDouble(str.replaceAll(getResources().getString(R.string.Rs), ""));

                        holder.singlerowprice.setText(getResources().getString(R.string.Rs)+" " + Double.parseDouble(holder.qty.getText().toString()) * sell_price);

                        prodetailarray.get(listrowposition).setQntity(String.valueOf(plus_qnty));
                        prodetailarray.get(listrowposition).setBaseprice("" + Double.parseDouble(base_price) * plus_qnty);

                    }
                /*for calculate value after change if any change*/
                Double add = 0.0;
                Double pr = 0.0;
                for (int i = 0;i < listView.getCount(); i++)
                {
                    Log.d("listviewcount==",""+listView.getCount());

                    View v = listView.getAdapter().getView(i,null,null);

                    TextView tvquan = (TextView) v.findViewById(R.id.txtquntty_prodetail);
                    TextView tvprice = (TextView) v.findViewById(R.id.txtsinglerow_price);

                   // String str_qun=tvquan.getText().toString().trim();
                    String str_qun=tvquan.getText().toString().trim();

                    Log.d("listviewcount==",""+str_qun);

                    Double c = Double.parseDouble(str_qun.replaceAll("KG", ""));
                    add = c + add;

                    String str = tvprice.getText().toString().trim();
                  //  String str = holder.singlerowprice.getText().toString().trim();

                    Log.d("str_qun==",""+str_qun+str);
                    Double p = Double.parseDouble(str.replaceAll(getResources().getString(R.string.Rs), ""));
                    pr = pr + p;

                   // Log.d("listitemcount==", "tvquan==" + tvquan.getText().toString() + "add==" + add + "price" + pr);

                    totalamount.setText(getResources().getString(R.string.Rs) +" "+ pr);
                }


            }

                else {

                }
            }
        });

        holder.imgminus.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                PLUSMINUS = 200;




                if(holder.qty.getText().toString().matches("[0-9]+"))
                {
                    minus_qnty = Integer.parseInt(holder.qty.getText().toString());



                    if (minus_qnty == 1)
                {
                    // holder.qty.setText(""+);

                }
                else
                {

                    minus_qnty = minus_qnty - 1;

                    holder.qty.setText("" + minus_qnty);


                    String str=holder.sellprice.getText().toString();
                    Double sell_price= Double.parseDouble(str.replaceAll(getResources().getString(R.string.Rs), ""));

                    holder.singlerowprice.setText(getResources().getString(R.string.Rs)+" " + Double.parseDouble(holder.qty.getText().toString()) * sell_price);

                    prodetailarray.get(listrowposition).setQntity(String.valueOf(minus_qnty));

                    prodetailarray.get(listrowposition).setBaseprice("" + Double.parseDouble(base_price) * minus_qnty);

                }

                /*for calculate value after change if any change*/

                Double add = 0.0;
                Double pr = 0.0;
                for (int i = 0; i <listView.getCount(); i++)
                {
                    View v = listView.getAdapter().getView(i,null,null);

                    TextView tvquan = (TextView) v.findViewById(R.id.txtquntty_prodetail);
                    TextView tvprice = (TextView) v.findViewById(R.id.txtsinglerow_price);

                    String str_qun=tvquan.getText().toString().trim();
                    Double c = Double.parseDouble(str_qun.replaceAll("KG", ""));
                    add = c + add;

                    String str = tvprice.getText().toString().trim();
                    Double p = Double.parseDouble(str.replaceAll(getResources().getString(R.string.Rs), ""));
                    pr = pr + p;


                //    Log.d("listitemcount==", "tvquan==" + tvquan.getText().toString() + "add==" + add + "price" + pr);


                    totalamount.setText(getResources().getString(R.string.Rs) +" "+ pr);
                }

            }
                else
                {

                }
            }
        });

        if(!prodetailarray.get(listrowposition).getQntity().matches("[0-9]+"))
        {
        holder.qty.setOnClickListener(new View.OnClickListener()
        {
            @Override
            public void onClick(View view)
            {
                final Integer index = (Integer) view.getTag();
                Log.d("indexval==","index==="+index);

                final Dialog dialog_item = new Dialog(Bill_details.this);

                dialog_item.setContentView(R.layout.add_item_dialog);
                dialog_item.getWindow().setLayout(AppBarLayout.LayoutParams.FILL_PARENT, AppBarLayout.LayoutParams.WRAP_CONTENT);

                final EditText edt_enter_qntty = (EditText) dialog_item.findViewById(R.id.txtqntty_item_dialog);
                TextView ok = (TextView) dialog_item.findViewById(R.id.txtok_item_dialog);
                ok.setOnClickListener(new View.OnClickListener()
                {
                    @Override
                    public void onClick(View view)
                    {
                        if(edt_enter_qntty.getText().toString().equals(""))
                        {

                        }
                        else
                        {
                            Double dialog_qntty= Double.parseDouble(edt_enter_qntty.getText().toString());

                          //  PLUSMINUS = 100;
                            kg_qntty =  dialog_qntty;

                            //this is for checking entered qunnt is not more than avail qntty
                                String whole_qnt=holder.whole_qntty.getText().toString();
                                String whole_qnt_replce= (whole_qnt.replaceAll("KG", ""));
                                whole_qnt_kg= Double.parseDouble(whole_qnt_replce);
                                Log.d("whole_qnt_kg==",""+whole_qnt_kg);
                            if(kg_qntty>whole_qnt_kg)
                            {
                                Toast.makeText(getApplicationContext(), getResources().getString(R.string.outofstock), Toast.LENGTH_LONG).show();

                            }
                            else
                            {
                            prodetailarray.get(listrowposition).setQntity(String.valueOf(kg_qntty));
                            holder.qty.setText("" + kg_qntty+"KG");
                                //remove all the text except price (integer value)
                                String str_qnty=holder.qty.getText().toString();
                                Double qty= Double.parseDouble(str_qnty.replaceAll("KG", ""));

                                String str=holder.sellprice.getText().toString();
                                Double sell_price= Double.parseDouble(str.replaceAll(getResources().getString(R.string.Rs), ""));

                                holder.singlerowprice.setText(getResources().getString(R.string.Rs)+" " + qty * sell_price);

                                prodetailarray.get(listrowposition).setQntity(String.valueOf(kg_qntty));
                                prodetailarray.get(listrowposition).setBaseprice("" + Double.parseDouble(base_price) * kg_qntty);


                            }


                                 /*for calculate value after change if any change*/
                            Double add = 0.0;
                            Double pr = 0.0;

                            for (int i = 0;i <listView.getCount(); i++)
                            {

                                View v = listView.getAdapter().getView(i,null,null);
                                TextView tvquan = (TextView) v.findViewById(R.id.txtquntty_prodetail);
                                TextView tvprice = (TextView) v.findViewById(R.id.txtsinglerow_price);

                                String str_quan=tvquan.getText().toString().trim();

                                Log.d("strqn",str_quan);

                                String c = (str_quan.replaceAll("KG", ""));
                                Log.d("strqn", "" + c);
                                add = Double.parseDouble(c) + add;

                                String str_pri=tvprice.getText().toString().trim();
                                Double p= Double.parseDouble(str_pri.replaceAll(getResources().getString(R.string.Rs), ""));
                                pr = pr + p;

                                Log.d("total_qntty", "tvquan==" + tvquan.getText().toString() + "add==" + add + "price" + pr);

                                //  totalitem.setText("" + add+" Items");
                                totalamount.setText(getResources().getString(R.string.Rs) +" "+ pr);


                            }

                        }
                        dialog_item.dismiss();
                    }
                });
                dialog_item.show();


            }
        });
        }
        return convertView;
    }

    @Override
    public int getViewTypeCount() {

        return getCount();
    }

    @Override
    public int getItemViewType(int position) {

        return position;
    }
}

2 个答案:

答案 0 :(得分:0)

永远不要从事件处理程序(控制器)更新列表中的项目视图。

您似乎正在更新模型(prodetailarray),但在onClick或任何事件处理程序中,您只想更新模型然后调用notifyDataSetChanged() 。这将通知列表视图模型已更改,列表视图将根据新模型数据重新生成项目视图。

如果这还不足以解决您的问题,则您需要发布整个适配器代码,以便我们确定问题。

答案 1 :(得分:0)

//见下面我更新的getview方法。

public View getView(final int position,View convertView,ViewGroup parent)

    {
         listrowposition = position;

        final ViewHolder holder;

        if (convertView == null)
        {
            LayoutInflater inflater = getLayoutInflater();
            convertView = inflater.inflate(R.layout.singlerowbill_detail, null);
            holder = new ViewHolder();

            holder.name = (TextView) convertView.findViewById(R.id.txtproname_prodetail);
            holder.sellprice = (TextView) convertView.findViewById(R.id.txtprice_prodetail);
            holder.proid = (TextView) convertView.findViewById(R.id.txtproid_prodetail);

            holder.qty = (TextView) convertView.findViewById(R.id.txtquntty_prodetail);

            holder.imgplus = (ImageView) convertView.findViewById(R.id.imgplus_prodetail);
            holder.imgminus = (ImageView) convertView.findViewById(R.id.imgminus_prodetail);
            holder.singlerowprice = (TextView) convertView.findViewById(R.id.txtsinglerow_price);
            holder.baseprice = (TextView) convertView.findViewById(R.id.txt_base_price_prodetail);

            holder.taxid = (TextView) convertView.findViewById(R.id.txt_taxid_prodetail);
            holder.taxname = (TextView) convertView.findViewById(R.id.txt_taxname_prodetail);
            holder.taxval = (TextView) convertView.findViewById(R.id.txt_taxval_prodetail);

            // holder.singlerowprice.addTextChangedListener(new MytextWatcher(convertView));

            holder.delete = (ImageView) convertView.findViewById(R.id.txtdeleterow);
            holder.txtkg = (TextView) convertView.findViewById(R.id.txtkg);
            holder.whole_qntty = (TextView) convertView.findViewById(R.id.txt_whole_qntty_prodetail);


            holder.circularImageView = (CircularImageView) convertView.findViewById(R.id.productImage_billdetail);
            holder.linearLayout = (LinearLayout) convertView.findViewById(R.id.linearkg);


            holder.name.setTypeface(light);
            holder.singlerowprice.setTypeface(light);
            holder.baseprice.setTypeface(light);
            holder.qty.setTypeface(light);
            convertView.setTag(holder);
        }
        else
        {
            holder = (ViewHolder) convertView.getTag();
        }

        base_price =        prodetailarray.get(listrowposition).getBaseprice();
        holder.qty.setTag(listrowposition);
        holder.delete.setTag(listrowposition);
        holder.imgplus.setTag(listrowposition);
        holder.imgminus.setTag(listrowposition);

        Log.d("baseprice==", "***" + base_price);
        holder.baseprice.setText(prodetailarray.get(listrowposition).getBaseprice());


        //this means if qnty contain only number means add as unit otherwise add as kg
        if(prodetailarray.get(listrowposition).getQntity().matches("[0-9]+"))
        {
            holder.qty.setText(prodetailarray.get(listrowposition).getQntity());
            //
            holder.imgplus.setVisibility(View.VISIBLE);
            holder.imgminus.setVisibility(View.VISIBLE);
           //
            Log.d("qntty_kg??",""+prodetailarray.get(listrowposition).getQntity());
        }
        else
        {
            holder.imgplus.setVisibility(View.GONE);
            holder.imgminus.setVisibility(View.GONE);
          //
            holder.qty.setText(""+prodetailarray.get(listrowposition).getQntity());

            Log.d("qntty_kg==",""+prodetailarray.get(listrowposition).getQntity());
        }

        holder.name.setText(prodetailarray.get(listrowposition).getProductname());
        holder.sellprice.setText(getResources().getString(R.string.Rs)+" "+prodetailarray.get(listrowposition).getPrice());
        holder.taxid.setText(prodetailarray.get(listrowposition).getTaxid());
        holder.taxname.setText(prodetailarray.get(listrowposition).getTaxname());
        holder.taxval.setText(prodetailarray.get(listrowposition).getTaxvalue());
        holder.whole_qntty.setText(prodetailarray.get(listrowposition).getWhole_qntty());

        holder.proid.setText(prodetailarray.get(listrowposition).getProducuid());

        final String str=prodetailarray.get(listrowposition).getQntity();
        Double q = Double.parseDouble(str.replaceAll("KG", ""));

        holder.singlerowprice.setText(getResources().getString(R.string.Rs)+" " + Double.parseDouble(prodetailarray.get(listrowposition).getPrice()) * q);

        drawable = mDrawableBuilder.build(String.valueOf(holder.name.getText().toString().trim().toUpperCase().charAt(0)),
                mColorGenerator.getColor((holder.name.getText().toString().trim().charAt(0))));

        holder.circularImageView.setImageDrawable(drawable);

        holder.delete.setOnClickListener(new View.OnClickListener()
        {
            @Override
            public void onClick(View view)
            {
                total_item = totalquantity-1;
                totalquantity=total_item;

                Integer index = (Integer) view.getTag();
                Log.d("indexval==","delete"+index.intValue());
                prodetailarray.remove(index.intValue());

                adapter.notifyDataSetChanged();
                listView.invalidateViews();

                Log.d("listCount==",""+listView.getCount());
                Double add = 0.0;
                Double pr = 0.0;

                if (listView.getCount() == 0)
                {
                    totalitem.setText("0 Items");
                    totalamount.setText( getResources().getString(R.string.Rs)+" 0");
                    editor.remove("count");
                    editor.remove("price");
                    editor.commit();
                }

                for (int i = 0; i < listView.getCount(); i++)
                {
                   // this if is for  after delete item it will take first item so we dont want like this

                        View v = listView.getAdapter().getView(i,null,listView);
                        if(v==null)
                        {
                            return;
                        }
                        TextView tvquan = (TextView) v.findViewById(R.id.txtquntty_prodetail);
                        TextView tvprice = (TextView) v.findViewById(R.id.txtsinglerow_price);

                        String str_qun=tvquan.getText().toString().trim();
                        Double c = Double.parseDouble(str_qun.replaceAll("KG", ""));
                        add = c + add;

                        String str = tvprice.getText().toString().trim();
                        Double p = Double.parseDouble(str.replaceAll(getResources().getString(R.string.Rs), ""));
                        pr = pr + p;

                        totalitem.setText("" + total_item + " Items");
                        totalamount.setText(getResources().getString(R.string.Rs) + " " + pr);

                        Log.d("listitemcount==", "tvquan==" + tvquan.getText().toString() + "add==" + add + "price" + pr + "p==" + p);

                }
            }
        });

        holder.imgplus.setOnClickListener(new View.OnClickListener()
        {
            @Override
            public void onClick(View view)
            {
               int in=(Integer) view.getTag();

                PLUSMINUS = 100;
                if(holder.qty.getText().toString().matches("[0-9]+"))
                {
                  plus_qnty = Integer.parseInt(holder.qty.getText().toString());
                    Log.d("plus_qnty==",""+plus_qnty);

                    //this is for check the quantity that useer enter is not more than  qntty in stock
                    Log.d("whole_qnt_plus==",""+holder.whole_qntty.getText().toString());

                         whole_qnt= Integer.parseInt(holder.whole_qntty.getText().toString());
                         Log.d("whole_qnt_plus==",""+whole_qnt);

                    plus_qnty = plus_qnty + 1;

                    if(plus_qnty>whole_qnt)
                    {
                        Toast.makeText(getApplicationContext(), getResources().getString(R.string.outofstock), Toast.LENGTH_LONG).show();

                    }
                    else
                    {
                        for(int i=0;i<prodetailarray.size();i++){
                            Log.d("proarr==","getQntity=="+""+prodetailarray.get(i).getQntity()+"baseprice=="+prodetailarray.get(i).getBaseprice());
                        }

                        holder.qty.setText("" + plus_qnty);

                        //remove all the text except price (integer value)
                        String str=holder.sellprice.getText().toString().trim();
                        Double sell_price= Double.parseDouble(str.replaceAll(getResources().getString(R.string.Rs), ""));

                        holder.singlerowprice.setText(getResources().getString(R.string.Rs)+" " + Double.parseDouble(holder.qty.getText().toString()) * sell_price);

Bills_Activity.productlistarray.set(位置);

                        prodetailarray.get(in).setQntity(String.valueOf(plus_qnty));
                        prodetailarray.get(in).setBaseprice("" + Double.parseDouble(base_price) * plus_qnty);


                        for(int i=0;i<prodetailarray.size();i++)
                        {
                            Log.d("proarr=="," after_getQntity=="+""+prodetailarray.get(i).getQntity()+"baseprice=="+prodetailarray.get(i).getBaseprice());
                        }
                    }

                /*for calculate value after change if any change*/
                Double add = 0.0;
                Double pr = 0.0;
                for (int i = 0;i <listView.getCount(); i++)
                {
                    View v = listView.getAdapter().getView(i,null,listView);
                    if(v==null)
                    {
                        return;
                    }
                    TextView tvquan = (TextView) v.findViewById(R.id.txtquntty_prodetail);
                    TextView tvprice = (TextView) v.findViewById(R.id.txtsinglerow_price);

                    String str_qun=tvquan.getText().toString().trim();
                    Double c = Double.parseDouble(str_qun.replaceAll("KG", ""));
                    add = c + add;

                    String str = tvprice.getText().toString().trim();
                    Double p = Double.parseDouble(str.replaceAll(getResources().getString(R.string.Rs), ""));
                    pr = pr + p;


                    Log.d("listitemcount==", "tvquan==" + tvquan.getText().toString() + "add==" + add + "price" + pr);
                                 totalamount.setText(getResources().getString(R.string.Rs) +" "+ pr);

                }

            }

                else
                {

                }
            }
        });

        holder.imgminus.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                PLUSMINUS = 200;
                int in=(Integer) view.getTag();
                if(holder.qty.getText().toString().matches("[0-9]+"))
                {
                    minus_qnty = Integer.parseInt(holder.qty.getText().toString());

                    if (minus_qnty == 1)
                {


                }
                else
                {

                    minus_qnty = minus_qnty - 1;

                    holder.qty.setText("" + minus_qnty);


                    String str=holder.sellprice.getText().toString();
                    Double sell_price= Double.parseDouble(str.replaceAll(getResources().getString(R.string.Rs), ""));

                    holder.singlerowprice.setText(getResources().getString(R.string.Rs)+" " + Double.parseDouble(holder.qty.getText().toString()) * sell_price);

                    prodetailarray.get(in).setQntity(String.valueOf(minus_qnty));

                    prodetailarray.get(in).setBaseprice("" + Double.parseDouble(base_price) * minus_qnty);

                }

                /*for calculate value after change if any change*/

                Double add = 0.0;
                Double pr = 0.0;
                for (int i = 0; i < listView.getCount(); i++)
                {
                    View v = listView.getAdapter().getView(i,null,listView);
                    if(v==null)
                    {
                        return;
                    }
                    TextView tvquan = (TextView) v.findViewById(R.id.txtquntty_prodetail);
                    TextView tvprice = (TextView) v.findViewById(R.id.txtsinglerow_price);
                    String str_qun=tvquan.getText().toString().trim();
                    Double c = Double.parseDouble(str_qun.replaceAll("KG", ""));
                    add = c + add;


                    String str = tvprice.getText().toString().trim();
                    Double p = Double.parseDouble(str.replaceAll(getResources().getString(R.string.Rs), ""));
                    pr = pr + p;


                    Log.d("listitemcount==", "tvquan==" + tvquan.getText().toString() + "add==" + add + "price" + pr);

                    totalamount.setText(getResources().getString(R.string.Rs) +" "+ pr);
                   // totalamount.setText(""+ pr);
                }
            }
                else
                {

                }
            }
        });

        if(!prodetailarray.get(listrowposition).getQntity().matches("[0-9]+"))
        {
        holder.qty.setOnClickListener(new View.OnClickListener()
        {
            @Override
            public void onClick(View view)
            {
                  index = (Integer) view.getTag();
                Log.d("indexval==","index==="+index);

                final Dialog dialog_item = new Dialog(Bill_details.this);

                dialog_item.setContentView(R.layout.add_item_dialog);
                dialog_item.getWindow().setLayout(AppBarLayout.LayoutParams.FILL_PARENT, AppBarLayout.LayoutParams.WRAP_CONTENT);

                  edt_enter_qntty = (EditText) dialog_item.findViewById(R.id.txtqntty_item_dialog);

                TextView ok = (TextView) dialog_item.findViewById(R.id.txtok_item_dialog);
                ok.setOnClickListener(new View.OnClickListener()
                {
                    @Override
                    public void onClick(View view)
                    {
                        if(edt_enter_qntty.getText().toString().equals(""))
                        {

                        }
                        else
                        {
                            Double dialog_qntty= Double.parseDouble(edt_enter_qntty.getText().toString());

                          //  PLUSMINUS = 100;
                            kg_qntty =  dialog_qntty;
                            //this is for checking entered qunnt is not more than avail qntty
                                String whole_qnt=holder.whole_qntty.getText().toString();
                                String whole_qnt_replce= (whole_qnt.replaceAll("KG", ""));
                                whole_qnt_kg= Double.parseDouble(whole_qnt_replce);
                                Log.d("whole_qnt_kg==",""+whole_qnt_kg);
                            if(kg_qntty>whole_qnt_kg)
                            {
                                Toast.makeText(getApplicationContext(), getResources().getString(R.string.outofstock), Toast.LENGTH_LONG).show();

                            }
                            else
                            {
                                holder.qty.setText("" + kg_qntty+"KG");
                                prodetailarray.get(index).setQntity(String.valueOf(kg_qntty));
                                //remove all the text except price (integer value)
                                String str_qnty=prodetailarray.get(index).getQntity().toString();

                                Double qty= Double.parseDouble(str_qnty.replaceAll("KG", ""));

                                String str=holder.sellprice.getText().toString();
                                Double sell_price= Double.parseDouble(str.replaceAll(getResources().getString(R.string.Rs), ""));

                                Log.d("qty * sell_price==",""+qty+" "+sell_price);

                                holder.singlerowprice.setText(getResources().getString(R.string.Rs)+" " + qty * sell_price);

                                prodetailarray.get(index).setBaseprice("" + Double.parseDouble(base_price) * kg_qntty);
                            }

                                 /*for calculate value after change if any change*/
                            Double add = 0.0;
                            Double pr = 0.0;

                            for (int i = 0;i < listView.getCount(); i++)
                            {

                                View v = listView.getAdapter().getView(i,null,listView);
                                if(v==null)
                                {
                                    return;
                                }
                                    TextView tvquan = (TextView) v.findViewById(R.id.txtquntty_prodetail);
                                    TextView tvprice = (TextView) v.findViewById(R.id.txtsinglerow_price);

                                    String str_quan=tvquan.getText().toString().trim();

                                    Log.d("strqn",str_quan);

                                    String c = (str_quan.replaceAll("KG", ""));
                                    Log.d("strqn", "" + c);
                                    add = Double.parseDouble(c) + add;

                                    String str_pri=tvprice.getText().toString().trim();
                                    Double p= Double.parseDouble(str_pri.replaceAll(getResources().getString(R.string.Rs), ""));
                                    pr = pr + p;

                                    Log.d("total_qntty", "tvquan==" + tvquan.getText().toString() + "add==" + add + "price" + pr);

                                  //  totalitem.setText("" + add+" Items");
                                    totalamount.setText(getResources().getString(R.string.Rs) +" "+ pr);


                            }

                        }
                        dialog_item.dismiss();
                    }
                });
                dialog_item.show();


            }
        });
        }
        return convertView;
    }