Programmino Android che utilizza SQLite

Premesso che abbiamo compilato il progetto son SQLite e completato la form per l'inserimento di un libro, ora andiamo avanti creando l'Activity GestioneLibro che la utilizza, almeno nel caso in cui si voglia proprio inserire un libro.
Poi faremo in modo che la pagina di ingresso MainActivity chiami GestioneLibro.


Primo Passo: Creare la nuova classe Activity GestioneLibro

1. Pulsante destro sui src (sorgenti) e selezionare New-->>Class...


2. Nella form che si apre, specificare che la Classe che vogliamo creare ha come superclasse Activity.
premendo il tasto Browse... e scrivendo le prime lettere "Act" poi basterà selezionare la prima classe che compare android.app.Activity

3. Inserire il nome della classe che vogliamo creare: GestioneLibro

4. Premendo Fine, vediamo che tra i sorgenti è stato creato un nuovo file Gestionelibro.java che è la nostra classe.
prima di utilizzarla e di scrivere del codice dentro, nel successivo passo, la registriamo nel file AndroidManifest.xml, che è il file in cui vengono registrate tutte le componenti e le caratteristiche della nostra applicazione.


1 - New Class...
2 - Specificare la Superclasse
3 - Nome GestioneLibro
4 - Risultato Finale GestioneLibro.java

1 - Modifica File AndroidManifest.xml

Secondo Passo: Modificare AndroidManifest.xml

1. Aprire il file AndroidManifest.xml.
Andare sull'ultimo tab in basso in cui si può modificare questo file in XML.

2. Inserire, all'interno dei tag <application>, sotto il tag di chiusura </activity> del ActivityMain, la seguente riga di codice:
<activity android:name="com.example.androidsqlite.GestioneLibro"/>


Terzo Passo: Modifichiamo GestioneLibro.java

1. Nella nostra classe Gestionelibro.java aggiungiamo il seguente pezzo di codice, il metodo OnCreate:

public class GestioneLibro extends Activity {
 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.insert_book);
  }
}           

2. Per approfondire il concetto di Activity in Android, ricordiamo che sul sito ufficiale developer.android.com ci sono tutte le informazioni di cui abbiamo bisogno.
A questo link c'è la spiegazione del metodo OnCreate che viene chiamato alla partenza dell'Activity.

1 - GestioneLibro con metodo OnCreate

1 - Drag and Drop bottone su activity_main
2 - Vista XML del bottone

Quarto Passo: Modifica MainActivity per chiamare GestioneLibro

1. Andare su res-->>layout-->>activity_main.xml.
Aggiungere un bottone al centro della form.


2. Scrivere tramite la vista XML "Inserisci Libro" sul bottone e salvare.
Notare il campo che ci servirà nel passo successivo: android:id="@+id/button1". button1 è il nome con cui il sistema Android identifica il pulsante su quella form. Ricordiamolo, perché è utile nel passo successivo in cui assoceremo a quel bottone l'azione di far partire la nostra Activity "GestioneLibro".



Quinto Passo: Azione sul bottone

1. Torniamo su MainActivity.java e inseriamo, all'interno del metodo OnCreate, dopo l'istruzione setContentView(..), il seguente blocco di codice:

Button buttInserisci = (Button)findViewById(R.id.button1);
buttInserisci.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
    Intent myIntent = new Intent(MainActivity.this, GestioneLibro.class);
    myIntent.putExtra("azione", "INSERIMENTO"); //Optional parameters
    MainActivity.this.startActivity(myIntent);
    }
});          
          


3. Torniamo a vedere nel Graphical Layout com'è cambiata la nostra form!.


1 - MainActivity modificata

1 - Run Android Application
   2 - App sullo smartphone

Sesto Passo: Run e il lancio della nuova Activity

1. Selezionare il progetto, pulsante destro del mouse,
Run As-->>Android Application
Dalla form Android device chooser, selezionare il proprio telefono o far partire un emulatore ed attendere.


2. Sul telefono apparirà la prima form della nostra app con un bottone "Inserisci Libro". Toccarlo e vedere la form dell'attività GestioneLibro.



Settimo passo - Inserire il libro!

1. Torniamo sulla classe GestioneLibro.java e il metodo OnCreateviene modificato in questo modo:

@Override
protected void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
		
 Intent intent = getIntent();
 //Prendo la Stringa passata dall'Activity Main
 String action = intent.getStringExtra("azione"); 
		
 if(action.equals("INSERIMENTO")) //Se ha valore "INSERIMENTO"
  {
   setContentView(R.layout.insert_book); //Il layout della form sarà insert_book.xml
			
	//il campo editabile titolo		
   final EditText titolo = (EditText)findViewById(R.id.editText1); 
    //il campo editabile autore	
   final EditText autore = (EditText)findViewById(R.id.editText1); 
 	
    //il bottone inserisci			
   Button buttInserisci = (Button)findViewById(R.id.button1);
    //definiamo l'azione da compiere quando si tocca il bottone
   buttInserisci.setOnClickListener(new OnClickListener() {

    @Override
    public void onClick(View v) {
    //creare un oggetto book
    Book book = new Book(titolo.getText().toString(),autore.getText().toString());
    //connessione al DB
    MySQLiteHelper db = new MySQLiteHelper(GestioneLibro.this);
    //aggiungi l'oggetto lobro
    db.addBook(book);
    //lista tutti i book presenti
    List<Book> list = db.getAllBooks();
    //fai un ciclo for sui libri e falli vedere con un toast
    for(Book b : list) {
    Toast.makeText(getApplicationContext(), b.getId() + " " + b.getTitle() + " " + b.getAuthor(),        Toast.LENGTH_SHORT).show();
    }
   }
  });
  }
}         
          


2. Run dell'App sul telefono e inserire un Libro. Vedere poi scorrere i libri inseriti con un id crescente fino a quello che abbiamo appena inserito.


1 - GestioneLibro
2 - Inserisci Libro