Pag. 1/3
Esercizi lezione 6
Esercizio A
Create una rubrica personale composta da nome, cognome, telefono. I dati dei contatti sono
registrati in un database SQLite di nome “rubrica.db”. Successivamente vengono letti e
visualizzati in una ListView.
Suggerimento: create una classe Persona composta dai seguenti attributi:
id:intero, nome:String, cognome: String, telefono: String.
Create una classe Helper chiamata RubricaDatabaseHelper con il metodo privato
creaRubrica(SQLiteDatabase db) che crea il database e la tabella “rubrica” (con le solite
istruzioni SQL); creaRubrica() registra anche alcuni record di prova.
La classe RubricaDatabaseHelper dovrebbe quindi somigliare alla seguente:
public class RubricaDatabaseHelper extends SQLiteOpenHelper {
final static String DB_NAME = "rubrica.db";
final static int DB_VERSION = 1;
public RubricaDatabaseHelper(Context context) {
super(context, DB_NAME, null, DB_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
creaRubrica(db);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
//
}
private void creaRubrica(SQLiteDatabase db) {
// istruzioni SQL di creazione della tabella rubrica
// e di inserimento di alcuni record di prova
// ...
}
} // fine classe
Il codice dell'Activity potrebbe invece somigliare al seguente:
public class SQLiteActivity extends Activity {
/** Called when the activity is first created. */
RubricaDatabaseHelper rubricaDbHelper;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
// ottengo la listview
ListView amiciListView=(ListView)this.findViewById(R.id.amiciListView);
// istanzio l'oggetto Helper
RubricaDatabaseHelper rubricaDbHelper = new RubricaDatabaseHelper(this);
Pag. 2/3
// apro il databse
SQLiteDatabase db = apriInLettura();
// carico tutti i dati
ArrayList<Persona> amici = leggi(db);
// chiudo il db
chiudi(db);
// id del layout
int layoutID = android.R.layout.simple_list_item_1;
// creo l'arrayadapter
ArrayAdapter<Persona> aa = new ArrayAdapter<Persona>(
this, layoutID , amici);
// faccio il bind
amiciListView.setAdapter(aa);
}
private SQLiteDatabase apriInLettura() {
//
}
...
} // fine Activity
amiciListView è un widget di tipo ListView definito in main.xml.
Perfezionate il codice dei metodi privati apriInLettura(), leggi() e chiudi().
Pag. 3/3
Esercizio B
Implementare l'inserimento di un contatto nella rubrica di sistema. Dopo ogni inserimento,
visualizzare i dati in una ListView.
Suggerimento:
progettate due bottoni con titoli rispettivamente: “Inserisci contatto” e “Lista contatti”. Usate
il codice delle slide per l'inserimento e un intent e il frammento di codice seguente per
richiamare la ListView della Rubrica.
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(android.provider.ContactsContract.Contacts.CONTENT_URI);
startActivity(intent);