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);