lundi 28 novembre 2016

how to get the previous checked position in list view

Actually I had a list view when i touch on the list view i will get popup window with check boxes when i check the check box and press ok then the dialog box closes and when i touch again the list view then the checked row position will change the background color and and stored into the data base . actually what was the issue is when i again select different item position and checked and press ok and again touch the list view instead of entering the checked position entering into data base the previously checked position also entering into data base along with current checked position . so i need to get previous position and clear position before the list view sees the checked positions . so that it only enters current position.please help me.

My activity:

listView1.setOnTouchListener(new AdapterView.OnTouchListener() {

              @Override
              public boolean onTouch(View v, MotionEvent event) {
                     if(event.getAction() == MotionEvent.ACTION_UP){



                   newListitems2.clear();
                newListitems2.addAll(itemsList1);


                   dialog = new Dialog(PendingOrdersActitvity.this);
                      dialog.setContentView(R.layout.itembumping);

                      dialog.show();

                      //listView1.setTag(position);
                      list1=(ListView )dialog.findViewById(R.id.list1);

                      ItemBumpingAdapter adapter2 = new ItemBumpingAdapter(PendingOrdersActitvity.this,newListitems2);
                      list1.setAdapter(adapter2);




                  Button okButton = (Button)dialog.findViewById(R.id.ok1);
                      okButton.setOnClickListener(new OnClickListener() {

                          @Override
                          public void onClick(View v) {

                              dialog.dismiss();

                          }
               });
                          Button cancelButton = (Button)dialog.findViewById(R.id.Cancel1);
                  cancelButton.setOnClickListener(new OnClickListener() {

                      @Override
                      public void onClick(View v) {
                          // TODO Auto-generated method stub
                          dialog.dismiss();
                      }



                      });
                      return true;

Adapter:

              final ViewHolder holder;
              String item = null, qty = null;
              if (convertView == null) {
                  holder = new ViewHolder();
                  convertView = inflator.inflate(R.layout.itembumpingadapter, null);
                  holder.qty = (TextView) convertView.findViewById(R.id.qty);
                  holder.name = (TextView) convertView.findViewById(R.id.item);
                  holder.childText = (TextView) convertView
                          .findViewById(R.id.childitem);
                  holder.qtyChild = (TextView) convertView
                          .findViewById(R.id.qtychild);
                   holder.checkbox = (CheckBox) convertView.findViewById(R.id.chckbox1);
                  convertView.setTag(holder);




              } else {

                  holder = (ViewHolder) convertView.getTag();
              }
              parentobjid=newListitems.get(position).getParentobjectid();
              if(!parentobjid.isEmpty())
              {
                  holder.name.setText("   " +newListitems.get(position).getItemnNameDisplay());
                  holder.name.setTextColor(Color.parseColor("#CC0000"));
                  holder.qty.setText("      "+String.valueOf(newListitems.get(position)
                          .getQuantityDisplay()));
                  holder.qty.setTextColor(Color.parseColor("#CC0000"));
              }
              else
              {

              holder.name.setText(newListitems.get(position).getItemnNameDisplay());
              holder.qty.setText(String.valueOf(newListitems.get(position)
                      .getQuantityDisplay()));
              holder.name.setTextColor(Color.parseColor("#FFFFFF"));
              holder.qty.setTextColor(Color.parseColor("#FFFFFF"));

// for(int i1=0;i1

// if(newListitems.get(i1).getCount()==1){
//newListitems.remove(i1); // } // }

holder.checkbox.setChecked(newListitems.get(position).isChecked() );

              holder.checkbox.setChecked(false);
              holder.checkbox.setTag(position);

              holder.checkbox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
                  @Override
                  public void onCheckedChanged(CompoundButton buttonView,
                          boolean isChecked) {


                      int position=(Integer)buttonView.getTag();


                        newListitems.get(position).setChecked(!newListitems.get(position).isChecked());


                  }
              });



                if(newListitems.get(position).isChecked()){
                       for (int i = 0; i <newListitems.size(); i++) {
                           if(i == position){ 
                           convertView .setEnabled(false);
                              convertView .setClickable(false);
                               convertView .setBackgroundColor(Color.parseColor("#DCDBDB"));


                  //holder.name.setEnabled(true);
                  //holder.name.setBackgroundColor(Color.parseColor("#DCDBDB"));

                    ItemsBean bean=new ItemsBean();
                    bean.setInvNo(newListitems.get(position).getInvNo());
                    bean.setItemnNameDisplay(newListitems.get(position).getItemnNameDisplay());
                    bean.setLinenum(newListitems.get(position).getLinenum());
                    bean.setQuantityDisplay(newListitems.get(position).getQuantityDisplay());
                    bean.setProdnum(newListitems.get(position).getProdnum());
                      bean.setFlag(1);
                      bean.setCount(1);

                      newListitems1.add(bean);

                    PendingOrdersActitvity.getInstance().insertintodatabase(newListitems1);

                    newListitems1.clear();



                   }
              }

The for loop condition which i kept in comment lines i tried but it didnt worked so please help me.




Aucun commentaire:

Enregistrer un commentaire