Autore Topic: problema nell'individuazione del record da eliminare...  (Letto 506 volte)

Offline Albe85

  • Utente junior
  • **
  • Post: 102
  • Respect: +1
    • Mostra profilo
problema nell'individuazione del record da eliminare...
« il: 11 Novembre 2010, 18:55:38 CET »
0
..buonasera a tutti...sto cercando di andare a eliminare una riga da una tabella del db...questa riga in particolare la elimino dopo aver verificato che la quantità dell'articolo relativo sia uguale a zero..una volta verificata tale condizione eliminerei dalla tabella adeguata la riga facendo il requery sul cursor subito dopo e passandolo all'adapter. Cosi facendo non avrei più presente in listview l'elemento selezionato....solo che non riesco ad andare a fare questa verifica...posto il codice...
Codice (Java): [Seleziona]
AdapterView.OnItemClickListener mItemListener = new OnItemClickListener() {
                   public void onItemClick(AdapterView<?> adapter, View v,int pos,long id) {
                           
                           posizione = pos;
                       db2.open();
                           Cursor r = db2.fetchProductsInLista();
                           startManagingCursor(r);
                           r.moveToPosition(pos);
                           adaptatore.notifyDataSetChanged();

                           int mNameIndex = r.getColumnIndex( MyDatabase2.ProductsMetaDataArt.PRODUCT_NOME_KEY);
                           int mUriIndex = r.getColumnIndex( MyDatabase2.ProductsMetaDataArt.PRODUCT_URIIMG_KEY);
                                     
                       ImageView image = new ImageView(activity);  
                       AlertDialog.Builder builder = new AlertDialog.Builder(activity);
                     
                       String s = r.getString(mUriIndex).substring(8);
                       s=s.replaceAll("%20", " ");
                       String myJpgPath = s;
                       BitmapFactory.Options options = new BitmapFactory.Options();
                       options.inSampleSize = 2;           
                       Bitmap bm = BitmapFactory.decodeFile(myJpgPath, options);
                       image.setImageBitmap(bm); //Sostituisci la tua bitmap
                       builder.setTitle("Conferma Acquisto");
                       builder.setIcon(R.drawable.carrello);
                       builder.setView(image);
                       

                       builder.setNegativeButton("Annulla", new DialogInterface.OnClickListener() {
                                 public void onClick(DialogInterface dialog, int id) {
                         dialog.cancel();  
                     }
                           });
                           
                       builder.setMessage("Vuoi acquistare una confezione di "+r.getString(mNameIndex)+" ?").setCancelable(false);    
                       builder.setPositiveButton("Conferma", new DialogInterface.OnClickListener() {                      
                           public void onClick(DialogInterface dialog, int id) {
                           
                                   db2.open();
                                   Cursor f = db2.fetchProductsInLista();
                                   startManagingCursor(f);
                                   f.moveToPosition(posizione);

                                   int mIdIndex = f.getColumnIndex( MyDatabase2.ProductsMetaDataLog.PRODUCT_ID_KEY);               
                                   int mQtaIndex = f.getColumnIndex( MyDatabase2.ProductsMetaDataLog.PRODUCT_QUANT_KEY);
                                   

                                   //Creiamo il progress dialog
                                               View v = new View(activity);
                                                   manageProgress2(v);
                                   
                                                   CreateData dataac = new CreateData();
                                                   
                               db2.insertLogAcquisti(Integer.parseInt(f.getString(mIdIndex)), dataac.getLongerData(), dataac.getStingData());
                                   db2.updateQuantita(Integer.parseInt(f.getString(mIdIndex)), Integer.parseInt(f.getString(mQtaIndex))-1);
                                   
                                   
                                   if(Integer.parseInt(f.getString(mQtaIndex))==0){
                                        //Cancelliamo prodotto con quantità=0 dalla tabella logspesadb e questo dovrà comparire
                                        //nella tabella degli articoli fuori lista.
                            Log.i("ID_ARTICOLO CON QUANTITA NULLA: ",f.getString(mIdIndex));   

                                        }
                                   
                                   
                                   boolean b = f.requery();
                   
                                   Log.i("REQUERY?", String.valueOf(b));                          
                                   adaptatore = new MyAdapter(activity,f);
                                   adaptatore.notifyDataSetChanged();
                                   ((ListView)findViewById(R.id.productsLv)).setAdapter(adaptatore);
                                   
                                                                   
                               
                                   db2.close();    
                               dialog.cancel();
                              }
                          });
                       
                   builder.create().show();
                   db2.close();    
                   }  
                };     
                ((ListView)findViewById(R.id.productsLv)).setOnItemClickListener(mItemListener);

non riesco a capire come mai non mi entra in questo if
Codice (Java): [Seleziona]
 if(Integer.parseInt(f.getString(mQtaIndex))==0){
                                        //Cancelliamo prodotto con quantità=0 dalla tabella logspesadb e questo dovrà comparire
                                        //nella tabella degli articoli fuori lista.
                            Log.i("ID_ARTICOLO CON QUANTITA NULLA: ",f.getString(mIdIndex));   

                                        }

...vi ringrazio ciaooo

Offline Albe85

  • Utente junior
  • **
  • Post: 102
  • Respect: +1
    • Mostra profilo
Re:problema nell'individuazione del record da eliminare...
« Risposta #1 il: 11 Novembre 2010, 19:52:20 CET »
0
Risolto banalmente mettendo al posto dell'if il metodo che chiama la query di delete che è la seguente:
Codice (Java): [Seleziona]
//Metodo per cancellare tutte le righe della tabella logacquistidb che hanno raggiunto quantità
        //da comperare = 0
         public void deleteLogAcquistiQnull(){
                mDb.delete(ProductsMetaDataLog.LOGSPES_TABLE, "QUANTITA="+String.valueOf(0), null);
        }