CERCA
PER MODELLO
FullScreen Chatbox! :)

Utente del giorno: gianpassa con ben 2 Thanks ricevuti nelle ultime 24 ore
Utente della settimana: 9mm con ben 9 Thanks ricevuti negli ultimi sette giorni
Utente del mese: 9mm con ben 34 Thanks ricevuti nell'ultimo mese

Visualizzazione dei risultati da 1 a 3 su 3
Discussione:

findViewById lancia una NullPointerException. Perchè?

Se questa discussione ti è stata utile, ti preghiamo di lasciare un messaggio di feedback in modo che possa essere preziosa in futuro anche per altri utenti come te!
  1. #1
    Baby Droid


    Registrato dal
    Jun 2013
    Messaggi
    12

    Ringraziamenti
    0
    Ringraziato 0 volte in 0 Posts
    Predefinito

    findViewById lancia una NullPointerException. Perchè?

    Ciao a tutti,
    sono nuova della programmazione Android e sto sviluppando una piccola app giusto per imparare. Ora ho un problema e credo di essermi persa qualche pezzo perchè non capisco da cosa possa dipendere.

    Ho la mia classe java MainActivity che estende Activity banalmente fatta in questo modo:



    e poi ho la mia ClasseTest così fatta:



    Ora, il primo findViewById contenuto in MainActivity restituisce risultato, mentre il secondo, contenuto nel costruttore della ClasseTest lancia la seguente eccezione:

    java.lang.RuntimeException: Unable to start activity ComponentInfo{com.android.app.prova/com.android.app.prova.MainActivity}: java.lang.NullPointerException

    e qualche riga sotto leggo

    10-10 15:51:21.705: E/AndroidRuntime(10577): Caused by: java.lang.NullPointerException
    10-10 15:51:21.705: E/AndroidRuntime(10577): at android.app.Activity.findViewById(Activity.java:18 82)

    mi sono persa qualcosa?

  2.  
  3. #2
    enricocid
    Guest
    Predefinito

    Quote Originariamente inviato da fanny983 Visualizza il messaggio
    Ciao a tutti,
    sono nuova della programmazione Android e sto sviluppando una piccola app giusto per imparare. Ora ho un problema e credo di essermi persa qualche pezzo perchè non capisco da cosa possa dipendere.

    Ho la mia classe java MainActivity che estende Activity banalmente fatta in questo modo:



    e poi ho la mia ClasseTest così fatta:



    Ora, il primo findViewById contenuto in MainActivity restituisce risultato, mentre il secondo, contenuto nel costruttore della ClasseTest lancia la seguente eccezione:

    java.lang.RuntimeException: Unable to start activity ComponentInfo{com.android.app.prova/com.android.app.prova.MainActivity}: java.lang.NullPointerException

    e qualche riga sotto leggo

    10-10 15:51:21.705: E/AndroidRuntime(10577): Caused by: java.lang.NullPointerException
    10-10 15:51:21.705: E/AndroidRuntime(10577): at android.app.Activity.findViewById(Activity.java:18 82)

    mi sono persa qualcosa?


    prova a cercare su stackoverflow

    Android findViewById returns null when used in class other than main Activity - Stack Overflow

    Sarebbe meglio che tu postassi un attachment con i .java :-)
    e un logcat.txt

    Spero che su questo sito tu possa trovare una soluzione :-)
    Prova a postare anche li.

    Hai provato anche su androiddev.it?

  4. #3
    Senior Droid


    Registrato dal
    Aug 2011
    Località
    Roma
    Messaggi
    406
    Smartphone
    Nexus 5

    Ringraziamenti
    6
    Ringraziato 32 volte in 29 Posts
    Predefinito

    Il metodo findViewById ha come oggetto di invocazione un'istanza di Activity. Molti tutorial android sottovalutano il fatto che non tutti conoscono bene java e quindi trascurano molti particolari. Nella tua classe che estende activity, quando chiami findViewById(), stai invocando effettivamente
    codice:
    this.findViewById()
    dove se non lo sapessi, this rappresenta l'istanza corrente, ovvero in questo caso l'activity stessa.
    Nella tua seconda classe stai invocando il metodo su un oggetto ClasseTest, per cui, ovviamente, non è definito il metodo findViewById()

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire risposte
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Torna su
Privacy Policy