Autore Topic: delete item  (Letto 384 volte)

Offline Kecco11

  • Utente junior
  • **
  • Post: 99
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    GS4
delete item
« il: 07 Luglio 2013, 23:19:04 CEST »
0
Ciao recupero dei dati dal db sqlite in una listview formata da un campo text con 'AAAA-MM-DD'  ed uno text con valori numerici....
ora tramite la funzione delete permetto di eliminare un singolo record. Il problema stà nel fatto che dovrei far eliminare il record tramite id e non tramite il campo altrimenti se con la stessa data ho ci sono più record, vengono eliminati tuttti quelli corrispondenti ad essa.Non so se mi sono spiegato bene, posto il codice con il metodo e la funzione delete...

Codice: [Seleziona]
ListAdapter adapter = new ArrayAdapter<Dettaglio>(this, R.layout.dettaglio_row_uscite, R.id.tv_uscita, dettagli){
                       
                        @Override
                        public View getView(int position, View convertView, ViewGroup parent) {
                                View row = super.getView(position, convertView, parent);
                               
                                Log.v("Bilancio", "Creo elemento in posizione "+position);
                               
                               
                                TextView tvData, tvUscite;
                                tvData = (TextView) row.findViewById(R.id.tv_data_uscita);
                                tvData.setTextColor(Color.RED);
                               
                                tvUscite = (TextView) row.findViewById(R.id.tv_uscita);
                                tvUscite.setTextColor(Color.RED);
                               
                               
                                Dettaglio d = dettagli.get(position);
                                tvData.setText(d.data+"");
                                tvUscite.setText(d.uscite+"");
                                return row;
                        }
                };
                lista.setAdapter(adapter);
               
               

Codice: [Seleziona]
public void deleteItem(View v) {
                RelativeLayout rl = (RelativeLayout) v.getParent();
                TextView tv = (TextView) rl.findViewById(R.id.tv_uscita);
                String uscita = tv.getText().toString();

                SQLiteDatabase db = mHelper.getWritableDatabase();
                db.delete(GiornateTable.TABLE_NAME, GiornateTable.USCITA + "='" + uscita + "'", null);
                db.close();

                finish();
                startActivity(getIntent());
               
        }

Offline bradipao

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 4043
  • keep it simple
  • Respect: +567
    • Github
    • Google+
    • bradipao
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Bradipao
  • Sistema operativo:
    W7
Re:delete item
« Risposta #1 il: 08 Luglio 2013, 07:54:10 CEST »
0
Come hai giustamente detto, usando da position devi risalire all'ID della riga di database e cancellarla.
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline Kecco11

  • Utente junior
  • **
  • Post: 99
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    GS4
Re:delete item
« Risposta #2 il: 08 Luglio 2013, 16:10:16 CEST »
0
Ok risolto eliminando il record in base all'ID   :-P