Autore Topic: Activity che non parte mai  (Letto 638 volte)

Offline littleChe90

  • Nuovo arrivato
  • *
  • Post: 4
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galxy S2 GT i9100
  • Sistema operativo:
    Windows Seven/Ubuntu 11.04
Activity che non parte mai
« il: 26 Marzo 2012, 14:01:40 CEST »
0
Ciao,

sto sviluppando un progetto che ha 3 Activity principali. La prima è solo un video di introduzione e viene subito chiamato il metodo finish() su di essa per concluderla.
Poi si passa sulla seconda (MenuActivity #2), che contiene un menù. Da questa si passa poi sulla terza (ExplosionActivity #3).
Ora nella #2 c'è un audio in loop come sottofondo, che viene creato con la classe MediaPlayer. Fin qui tutto ok, funziona perfettamente. Però provando a cliccare su Nuovo Gioco sul mio Galaxy S2 porta alla Activity #3, mentre sull'HTV Evo 3D del collega, questo non accade, e invece dopo aver visto la schermata nera per qualche secondo torna alla Activity del Menù (#2).
Il LogCat non fornisce alcun tipo di errore se non un banale WINDOW DIED, che non spiega alcunchè. Per correttezza e come da regolamento linko il LogCat anche se contiene poco secondo me.

L'Activity viene creata con il seguente codice:
Codice (Java): [Seleziona]
Intent intent = new Intent(this.getContext(), ExplosionActivity.class);
a.startActivity(intent);
Dove
Codice (Java): [Seleziona]
aè un riferimento alla Activity contenuto nel custom component ( extends ImageView ), creato per gestire i vari bottoni del menù.

Luca

http://pastebin.com/cFx0ubHS

Offline blackgin

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 1387
  • Respect: +164
    • Google+
    • blackgins
    • blackginsoft
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Nexus
  • Sistema operativo:
    Mac OSX 10.8
Re:Activity che non parte mai
« Risposta #1 il: 26 Marzo 2012, 15:02:36 CEST »
0
Non mi é ben chiaro l'utilizzo che fai del riferimento all'activity. Dentro una classe che estende ImageView hai un riferimento all'activity 2?
Lo startActivity dove si trova?
Posta un po' più di codice.
Postate il LogCat LogCat LogCat LogCat LogCat

Offline littleChe90

  • Nuovo arrivato
  • *
  • Post: 4
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galxy S2 GT i9100
  • Sistema operativo:
    Windows Seven/Ubuntu 11.04
Re:Activity che non parte mai
« Risposta #2 il: 26 Marzo 2012, 15:08:47 CEST »
0
nel metodo onCreate della Activity #2:
Codice (Java): [Seleziona]
LinearLayout menu = ((LinearLayout)findViewById(R.id.menu_LinearLayout));
menu.addView(new MainMenuItem(getApplicationContext(),MainMenuItem.NEW_GAME,this),1);

Funzioni del custom component:

costruttore, metodo onClick (implementazione View.onClickListener), newGame_callback()
Codice (Java): [Seleziona]
      public MainMenuItem(Context context,int type, Activity a) {
                super(context);
                this.a = (MenuActivity) a;
                setType(type);
                this.setImageResource(getResourceId());
                this.setOnClickListener(this);
                this.setOnTouchListener(this);
        }
        @Override
        public void onClick(View v) {
                this.setImageResource(getResourceId());
                switch(this.getType()){
                        case MainMenuItem.NEW_GAME: newGame_callback();break;
                        case MainMenuItem.RANKINGS: rankings_callback();break;
                        case MainMenuItem.HOWTO: howToPlay_callback();break;
                        case MainMenuItem.MOREGAMES: moreGames_callback();break;
                        case MainMenuItem.ABOUT: about_callback();break;
                }
               
        }
        private void newGame_callback(){
                Intent intent = new Intent(this.getContext(), ExplosionActivity.class);
                a.startActivity(intent);
        }

Credo questo sia sufficiente, visto che il problema sta soltanto con quel  bottone. Le altre callback vengono regolarmente chiamate senza problemi.

EDIT:
Ho risolto il problema, condivido il modo in cui ho risolto, nel caso in cui servisse a qualcun altro.
Il problema stava nel modo in cui iniziavo l'Intent ( dal custom component ). Ho spostato la creazione dell'Intent nell'Activity #2 e nel Custom Component, dove avevo un riferimento ad essa, chiamavo la funzione adibita alla creazione di questo benedetto Intent. Dopo questa modifica, worked like a charm :)

Spero sia utile a qualcun altro.
Grazie comunque per l'aiuto
« Ultima modifica: 29 Marzo 2012, 23:06:42 CEST da littleChe90, Reason: Ho risolto il problema »