Autore Topic: Riempire un layout  (Letto 559 volte)

Offline paolino1986

  • Nuovo arrivato
  • *
  • Post: 16
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    htc HERO
  • Sistema operativo:
    Windows 7
Riempire un layout
« il: 07 Febbraio 2011, 10:10:00 CET »
0
Ciao a tutti, sto provando a fare la mia prima app (e questo dice già tutto)  :-) e ho un dubbio su un layout,
praticamente leggo i dati da un db e poi voglio mostrarli all'utente.
 
Ho un activity a cui è associato un layout  con il metodo setContentView( ), quello che vorrei fare è che alla pressione del bottone "mostra dati" i valori estratti dal db vadano a riempire un secondo layout e solo quando i dati sono stati inseriti tutti cambiare il layout del'activity con quello appena riempito sempre con il metodo setContentView().

Ho provato a prendere il riferimento del secondo layout così:

ViewGroup mioLayout = ( cast ) FindViewbiId(R.id.risultati)

per riempirlo chiamo il metodo add sull' oggetto mioLayout ma quando faccio partire l'app va in force close
e il log mi dice Null point exception...mi sapete dire qualcosa?

Posterei volentieri il codice ma al momento non ce l'ho qui....solo che questo dubbio mi assale in continuazione  :-)
Grazie

Offline Qlimax

  • Moderatore globale
  • Utente senior
  • *****
  • Post: 757
  • Respect: +202
    • Google+
    • _Qlimax
    • Mostra profilo
    • www.egsolutions.ch
  • Dispositivo Android:
    Galaxy Nexus - Nexus One - Wildfire - Magic
  • Play Store ID:
    egsolutions.ch
  • Sistema operativo:
    Ubuntu 12.04, Windows 7
Re:Riempire un layout
« Risposta #1 il: 07 Febbraio 2011, 10:22:10 CET »
0
probabilmente R.id.risultati, non fa parte del layout che al momento hai settato tramite setContentView(...)


Offline paolino1986

  • Nuovo arrivato
  • *
  • Post: 16
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    htc HERO
  • Sistema operativo:
    Windows 7
Re:Riempire un layout
« Risposta #2 il: 07 Febbraio 2011, 13:01:11 CET »
0
ecco il codice di cui parlavo:
Codice (Java): [Seleziona]
public class Ricerca extends Activity
{

        private Button cerca;
    private Miodb db;
       
       
         public void onCreate(Bundle savedInstanceState)
            {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.ricerca);
               
               
                db=new Miodb(this);
               
                cerca=(Button) this.findViewById(R.id.cercaButton);
               
               
               
                cerca.setOnClickListener(new OnClickListener(){

                                @Override
                                public void onClick(View arg0) {
                                        mostraRisultati();
                                       
                                }});

            }

     public void mostraRisultati()
     {
         String prova = db.leggiDalDb();
         TextView nuova = new TextView(this);
         nuova.setText(prova);
         ViewGroup layout = (ViewGroup) this.findViewById(R.layout.result);
         layout.addView(nuova);
         this.setContentView(R.layout.result);
         
     }
}

il problema come dicevo ce l'ho nel metodo mostraRisultati() quando faccio l'add.

Offline Qlimax

  • Moderatore globale
  • Utente senior
  • *****
  • Post: 757
  • Respect: +202
    • Google+
    • _Qlimax
    • Mostra profilo
    • www.egsolutions.ch
  • Dispositivo Android:
    Galaxy Nexus - Nexus One - Wildfire - Magic
  • Play Store ID:
    egsolutions.ch
  • Sistema operativo:
    Ubuntu 12.04, Windows 7
Re:Riempire un layout
« Risposta #3 il: 07 Febbraio 2011, 14:02:57 CET »
0
mi sa che non hai ben chiaro cosa fanno i metodi setContentView e findViewById.

Activity | Android Developers

Offline paolino1986

  • Nuovo arrivato
  • *
  • Post: 16
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    htc HERO
  • Sistema operativo:
    Windows 7
Re:Riempire un layout
« Risposta #4 il: 07 Febbraio 2011, 14:33:48 CET »
0
Grazie Qlimax, effettivamente li ho sempre usati come mi sono stati presentati senza preoccuparmi di andare a leggere la documentazione.....non mi è chiaro però come io possa allora realizzare quello che sto provando a fare...

Offline Qlimax

  • Moderatore globale
  • Utente senior
  • *****
  • Post: 757
  • Respect: +202
    • Google+
    • _Qlimax
    • Mostra profilo
    • www.egsolutions.ch
  • Dispositivo Android:
    Galaxy Nexus - Nexus One - Wildfire - Magic
  • Play Store ID:
    egsolutions.ch
  • Sistema operativo:
    Ubuntu 12.04, Windows 7
Re:Riempire un layout
« Risposta #5 il: 07 Febbraio 2011, 18:29:52 CET »
0
devi creare un Activity a parte, con un layout xml a parte (che magari contiene una ListView), questa nuova Activity legge il db e visualizza i dati nella listview (puoi farlo con un SimpleCursorAdapter).

dai un occhiata a questo tutorial:
[medio] Creazione e utilizzo di un database SQLite - Android Developers Italia


in un futuro potresti considerare questa opzione:
Using the Android Search Dialog | Android Developers

ma ti consiglio di provare prima con il metodo "manuale/personale" così da capire bene il funzionamento di listview e db

« Ultima modifica: 07 Febbraio 2011, 18:32:27 CET da Qlimax »

Offline paolino1986

  • Nuovo arrivato
  • *
  • Post: 16
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    htc HERO
  • Sistema operativo:
    Windows 7
Re:Riempire un layout
« Risposta #6 il: 07 Febbraio 2011, 19:29:31 CET »
0
Grazie mille Qlimax....mi sei davvero stato di grande aiuto!!!!