CERCA
PER MODELLO
FullScreen Chatbox! :)

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

Visualizzazione dei risultati da 1 a 7 su 7
Discussione:

Errore in apertura di un activity da bottone

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
    Nov 2012
    Messaggi
    39

    Ringraziamenti
    13
    Ringraziato 0 volte in 0 Posts
    Exclamation

    Errore in apertura di un activity da bottone

    Salve a tutti,
    sto in questi giorni iniziando a programmare applicazioni Android, e per farlo seguo varia documentazione che trovo sul web.
    Uno dei primi esempi è quello di creare un progetto con 2 activity, e tramite un bottone presente sulla prima, aprire la seconda. Una cosa semplice, direi addirittura banale, ma che, ohimé, mi provoca un errore che non riesco a risolvere :-(
    Posto qui il codice sperando in un aiuto da chi è più esperto! :-)

    XML della prima activity:


    L'XML della seconda activity non contiene nulla, quindi non posto il codice XML.

    Java della prima activity:


    Java della seconda:


    Manifest:


    Ecco, se provo ad avviare l'applicazione commentando in questo modo il setOnClickListener del bottone


    nessun problema, l'applicazione parte e naturalmente non fa nulla.
    Se invece lo lascio non commentato, l'applicazione non parte per niente, e il LogCat stampa i seguenti errori:

    02-19 12:40:31.214 26766-26766/com.example.aprirenuovaactivity E/AndroidRuntime﹕ FATAL EXCEPTION: main
    java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.aprirenuovaactivity/com.example.aprirenuovaactivity.main}: java.lang.NullPointerException
    at android.app.ActivityThread.performLaunchActivity(A ctivityThread.java:2211)
    at android.app.ActivityThread.handleLaunchActivity(Ac tivityThread.java:2261)
    at android.app.ActivityThread.access$600(ActivityThre ad.java:141)
    at android.app.ActivityThread$H.handleMessage(Activit yThread.java:1256)
    at android.os.Handler.dispatchMessage(Handler.java:99 )
    at android.os.Looper.loop(Looper.java:137)
    at android.app.ActivityThread.main(ActivityThread.jav a:5103)
    at java.lang.reflect.Method.invokeNative(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:525)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCa ller.run(ZygoteInit.java:737)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit .java:553)
    at dalvik.system.NativeStart.main(Native Method)
    Caused by: java.lang.NullPointerException
    at com.example.aprirenuovaactivity.main.onCreate(main .java:37)
    at android.app.Activity.performCreate(Activity.java:5 133)
    at android.app.Instrumentation.callActivityOnCreate(I nstrumentation.java:1087)
    at android.app.ActivityThread.performLaunchActivity(A ctivityThread.java:2175)
    at android.app.ActivityThread.handleLaunchActivity(Ac tivityThread.java:2261)
    at android.app.ActivityThread.access$600(ActivityThre ad.java:141)
    at android.app.ActivityThread$H.handleMessage(Activit yThread.java:1256)
    at android.os.Handler.dispatchMessage(Handler.java:99 )
    at android.os.Looper.loop(Looper.java:137)
    at android.app.ActivityThread.main(ActivityThread.jav a:5103)
    at java.lang.reflect.Method.invokeNative(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:525)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCa ller.run(ZygoteInit.java:737)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit .java:553)
    at dalvik.system.NativeStart.main(Native Method)

    Non specifico le API utilizzate perché ho provato in diversi modi (con API 16, 17, 18), e in ogni caso non va, quindi non penso dipenda da questo.
    Non so, probabilmente sarà un errore banale vista la banalità del programma, però non so proprio dov'è questo banale errore :-(
    Grazie a tutti anticipatamente, scusate se ho fatto qualche errore nell'aprire questo topic.

  2.  
  3. #2
    Androidiani Power User L'avatar di cesco


    Registrato dal
    Sep 2010
    Località
    Bg
    Messaggi
    5,018
    Smartphone
    TYTN2,desire,desireHD, oneX

    Ringraziamenti
    54
    Ringraziato 1,346 volte in 724 Posts
    Predefinito

    Caused by: java.lang.NullPointerException
    at com.example.aprirenuovaactivity.main.onCreate(main .java:37)

    Controlla bene alla riga 37 in main.

    io proverei a commentare if(savedInstanceState==null) { ...} l'errore quasi sicuramente è li dato che R.id.container DEVE essere un framelayout e da quello che vedo tu hai solo un bottone in un RelativeLayout (stessa cosa per la seconda activity)
    Follow me on:
    <!-- Place this tag where you want the widget to render. -->
    <div class="g-person" data-width="180" data-href="//plus.google.com/113012341277613226011" data-theme="dark" data-rel="author"></div>

    <!-- Place this tag after the last widget tag. -->
    <script type="text/javascript">
    window.___gcfg = {lang: 'it'};

    (function() {
    var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true;
    po.src = 'https://apis.google.com/js/plusone.js';
    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s);
    })();
    </script>
    <br>
    <a class="twitter-timeline" href="https://twitter.com/xcesco89" data-widget-id="398762031488040960">Tweets di @xcesco89</a>
    <script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementB yId(id)){js=d.createElement(s);js.id=id;js.src=p+" ://platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}} (document,"script","twitter-wjs");</script>
    Androidiani app
    Estensione Androidiani per Google Chrome

  4. Il seguente Utente ha ringraziato cesco per il post:

    Jybo (19-02-14)

  5. #3
    Baby Droid


    Registrato dal
    Nov 2012
    Messaggi
    39

    Ringraziamenti
    13
    Ringraziato 0 volte in 0 Posts
    Predefinito

    Ho provato come mi hai detto tu, ma l'errore persiste allo stesso modo
    La cosa che non riesco a capire è che io, a parte il codice per la gestione del click del bottone che dovrebbe essere corretto in quanto è riportato uguale in una miriade di guide, non ho scritto niente di niente, tutto quel codice java (compreso quello che mi hai detto tu di provare a commentare) è creato automaticamente da Android Studio, quindi non capisco dov'è che sbaglio
    Intanto comunque grazie, se ti vengono in mente altri suggerimenti magari dimmi, che io li provo immediatamente

  6. #4
    Androidiani Power User L'avatar di cesco


    Registrato dal
    Sep 2010
    Località
    Bg
    Messaggi
    5,018
    Smartphone
    TYTN2,desire,desireHD, oneX

    Ringraziamenti
    54
    Ringraziato 1,346 volte in 724 Posts
    Predefinito

    Quote Originariamente inviato da Jybo Visualizza il messaggio
    Ho provato come mi hai detto tu, ma l'errore persiste allo stesso modo
    La cosa che non riesco a capire è che io, a parte il codice per la gestione del click del bottone che dovrebbe essere corretto in quanto è riportato uguale in una miriade di guide, non ho scritto niente di niente, tutto quel codice java (compreso quello che mi hai detto tu di provare a commentare) è creato automaticamente da Android Studio, quindi non capisco dov'è che sbaglio
    Intanto comunque grazie, se ti vengono in mente altri suggerimenti magari dimmi, che io li provo immediatamente
    hmmm, proviamo così allora:

    in main aggiungi questo metodo:



    poi nell'xml, all'interno del tag Button aggiungi:



    commenta l'onClickListener nel main e prova ad avviare l'app
    Follow me on:
    <!-- Place this tag where you want the widget to render. -->
    <div class="g-person" data-width="180" data-href="//plus.google.com/113012341277613226011" data-theme="dark" data-rel="author"></div>

    <!-- Place this tag after the last widget tag. -->
    <script type="text/javascript">
    window.___gcfg = {lang: 'it'};

    (function() {
    var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true;
    po.src = 'https://apis.google.com/js/plusone.js';
    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s);
    })();
    </script>
    <br>
    <a class="twitter-timeline" href="https://twitter.com/xcesco89" data-widget-id="398762031488040960">Tweets di @xcesco89</a>
    <script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementB yId(id)){js=d.createElement(s);js.id=id;js.src=p+" ://platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}} (document,"script","twitter-wjs");</script>
    Androidiani app
    Estensione Androidiani per Google Chrome

  7. Il seguente Utente ha ringraziato cesco per il post:

    Jybo (19-02-14)

  8. #5
    Baby Droid


    Registrato dal
    Nov 2012
    Messaggi
    39

    Ringraziamenti
    13
    Ringraziato 0 volte in 0 Posts
    Predefinito

    ..Ti ringrazio infinitamente, non sai che sollievo ora che questo piccolo passaggio funziona
    Visto che sono qui, volevo chiederti una cosa veloce veloce, se sei in grado di aiutarmi: ma a cosa serve tutto il metodo setOnClickListener (che da quanto avevo capito doveva stare in "ascolto" in caso di un eventuale click) se basta associare nel codice XML l'evento al bottone? E poi secondo te, come mai in quelle guide, il metodo che da me non funziona era dichiarato funzionante?
    Forse perché ora è diventato qualcosa di obsoleto?
    Intanto, grazie ancora della disponibilità

  9. #6
    Androidiano


    Registrato dal
    Apr 2011
    Località
    Lodi
    Messaggi
    256
    Smartphone
    Samsung S2, Nexus 5

    Ringraziamenti
    5
    Ringraziato 32 volte in 31 Posts
    Predefinito

    posta la riga 37

  10. #7
    Androidiani Power User L'avatar di cesco


    Registrato dal
    Sep 2010
    Località
    Bg
    Messaggi
    5,018
    Smartphone
    TYTN2,desire,desireHD, oneX

    Ringraziamenti
    54
    Ringraziato 1,346 volte in 724 Posts
    Predefinito

    Quote Originariamente inviato da Jybo Visualizza il messaggio
    ..Ti ringrazio infinitamente, non sai che sollievo ora che questo piccolo passaggio funziona
    Visto che sono qui, volevo chiederti una cosa veloce veloce, se sei in grado di aiutarmi: ma a cosa serve tutto il metodo setOnClickListener (che da quanto avevo capito doveva stare in "ascolto" in caso di un eventuale click) se basta associare nel codice XML l'evento al bottone? E poi secondo te, come mai in quelle guide, il metodo che da me non funziona era dichiarato funzionante?
    Forse perché ora è diventato qualcosa di obsoleto?
    Intanto, grazie ancora della disponibilità
    Esistono diversi metodi e puoi usare quello che più ti va a genio
    Follow me on:
    <!-- Place this tag where you want the widget to render. -->
    <div class="g-person" data-width="180" data-href="//plus.google.com/113012341277613226011" data-theme="dark" data-rel="author"></div>

    <!-- Place this tag after the last widget tag. -->
    <script type="text/javascript">
    window.___gcfg = {lang: 'it'};

    (function() {
    var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true;
    po.src = 'https://apis.google.com/js/plusone.js';
    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s);
    })();
    </script>
    <br>
    <a class="twitter-timeline" href="https://twitter.com/xcesco89" data-widget-id="398762031488040960">Tweets di @xcesco89</a>
    <script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementB yId(id)){js=d.createElement(s);js.id=id;js.src=p+" ://platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}} (document,"script","twitter-wjs");</script>
    Androidiani app
    Estensione Androidiani per Google Chrome

  11. Il seguente Utente ha ringraziato cesco per il post:

    Jybo (19-02-14)

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