Autore Topic: Accedere al db da un ArrayAdapter  (Letto 618 volte)

Offline jack_rooney

  • Nuovo arrivato
  • *
  • Post: 7
  • Respect: 0
    • Mostra profilo
Accedere al db da un ArrayAdapter
« il: 22 Gennaio 2014, 15:58:34 CET »
0
Salve a tutti,

mi sto incartando su errore (premetto che sono alle prime armi)
sono riuscito a creare una ListView dove ogni riga contiene un bottone ed un campo di testo, ora vorrei al click sul bottone andare a scrivere un record nel database.

il click lo intercetto correttamente, ma quando tento di istanziare il db: "The constructor DatabaseHandler(.....) is undefined
(mentre riesco invece a lavorare correttamente sul db se mi trovo in una Activity)

Codice (Java): [Seleziona]
public View getView(final int position, View convertView, ViewGroup parent) {
..............
..............
        ImageButton btn_qta_add = (ImageButton)convertView.findViewById(R.id.qta_add);
        btn_qta_add.setOnClickListener(new OnClickListener() {

                 public void onClick(View v) {
                 
                            DatabaseHandler db = new DatabaseHandler(this); //Qui mi viene segnalato errore
           
                 }
        });
});

la classe che gestisce il db ha questo costruttore:
Codice (Java): [Seleziona]
public class DatabaseHandler extends SQLiteOpenHelper {
...........
...........
    public DatabaseHandler(Context context) {
        super(context, DATABASE_NAME, null, DATABASE_VERSION);
        SQLiteDatabase db = this.getWritableDatabase();
    }
}

grazie 1000 per qualsiasi consiglio che è sempre ben accetto

iClaude

  • Visitatore
Re:Accedere al db da un ArrayAdapter
« Risposta #1 il: 22 Gennaio 2014, 16:06:12 CET »
0
Quando istanzi il DatabaseHandler non devi passare this perché ti trovi in una classe interna anonima.
Usa invece TuoNomeActivity.this

Offline jack_rooney

  • Nuovo arrivato
  • *
  • Post: 7
  • Respect: 0
    • Mostra profilo
Re:Accedere al db da un ArrayAdapter
« Risposta #2 il: 22 Gennaio 2014, 16:11:35 CET »
0
mi trovo all'interno della classe:

public class ArticoliAdapter01 extends ArrayAdapter<Listilsf>{

}

non sono in una activity.. come mi comporto?

iClaude

  • Visitatore
Re:Accedere al db da un ArrayAdapter
« Risposta #3 il: 22 Gennaio 2014, 16:17:36 CET »
0
Devi passargli un Context.
Il reference ad un Activity in genere va bene.
Puoi anche usare il metodo di Context getApplicationContext () x semplificare.