Autore Topic: Problema Variabili Globali  (Letto 1202 volte)

Offline Alex

  • Nuovo arrivato
  • *
  • Post: 7
  • Respect: 0
    • Mostra profilo
Problema Variabili Globali
« il: 01 Marzo 2011, 19:39:07 CET »
0
Ciao a tutti..
sono nuovo del forum e soprattutto di android...sto preparando una tesi in Ing.Informatica sviluppando un programma che possa girare su Android.
Veniamo al problema:
quando provo ad utilizzare gli Application context (ho letto la guida sul forum) per l'inserimento di dati in varie activity, crasha tutto e non riesco a capire dove sto sbagliando.
forse il problema è banale ma non riesco proprio a capire dove è l'errore.
Posto qui i vari pezzi di codice interessati e il LogCat:
Classe che contiene la variabile globale:
Codice (Java): [Seleziona]
import android.app.Application;

public class Appartamento extends Application {
       
        private String nomeAppartamento;
       
        public void setNomeAppartamento ( String nomeAppartamento ) {
                this.nomeAppartamento = nomeAppartamento;
        }

        public String getNomeAppartamento () {
                return nomeAppartamento;
        }
}
Activity dove inserisco il dato e tramite il tasto avanti passo all'attivity successiva:
Codice (Java): [Seleziona]
public class nuovoprogetto extends Activity{
         @Override
         public void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.nuovoprogetto);
                avanti();
         }

     private void avanti(){     //salvo i dati delle edittext e vado avanti
         Button bntMC=(Button)findViewById(R.id.bnt_appartamentoAvanti);      
         bntMC.setOnClickListener(new View.OnClickListener() {
         public void onClick(View view) {
                    Appartamento app = ( Appartamento ) getApplication();
                        EditText nomeAppartamento = (EditText)findViewById(R.id.appartamentoNome);

                        app.setNomeAppartamento(nomeAppartamento.getText().toString());
                       
                        Intent i = new Intent (view.getContext(), prova.class);
                                view.getContext().startActivity(i);
                        }
                });    
    }
Activity prova per vedere se mantiene il dato inserito:
Codice (Java): [Seleziona]
public class prova extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.prova);;
               
                Appartamento app = ( Appartamento ) getApplication();
                ( ( TextView ) findViewById( R.id.textView1 ) ).setText( app.getNomeAppartamento());
    }
}
Bene..quando passo all'attivity per stampare il dato mi Crasha, questo è il LogCat:
Codice (Java): [Seleziona]
03-01 18:14:24.894: ERROR/AndroidRuntime(485): FATAL EXCEPTION: main
03-01 18:14:24.894: ERROR/AndroidRuntime(485): java.lang.ClassCastException: android.app.Application
03-01 18:14:24.894: ERROR/AndroidRuntime(485):     at com.CertificazioneTermica.ACE01.nuovoprogetto$1.onClick(nuovoprogetto.java:24)
03-01 18:14:24.894: ERROR/AndroidRuntime(485):     at android.view.View.performClick(View.java:2408)
03-01 18:14:24.894: ERROR/AndroidRuntime(485):     at android.view.View$PerformClick.run(View.java:8816)
03-01 18:14:24.894: ERROR/AndroidRuntime(485):     at android.os.Handler.handleCallback(Handler.java:587)
03-01 18:14:24.894: ERROR/AndroidRuntime(485):     at android.os.Handler.dispatchMessage(Handler.java:92)
03-01 18:14:24.894: ERROR/AndroidRuntime(485):     at android.os.Looper.loop(Looper.java:123)
03-01 18:14:24.894: ERROR/AndroidRuntime(485):     at android.app.ActivityThread.main(ActivityThread.java:4627)
03-01 18:14:24.894: ERROR/AndroidRuntime(485):     at java.lang.reflect.Method.invokeNative(Native Method)
03-01 18:14:24.894: ERROR/AndroidRuntime(485):     at java.lang.reflect.Method.invoke(Method.java:521)
03-01 18:14:24.894: ERROR/AndroidRuntime(485):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
03-01 18:14:24.894: ERROR/AndroidRuntime(485):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
03-01 18:14:24.894: ERROR/AndroidRuntime(485):     at dalvik.system.NativeStart.main(Native Method)

Per favore aiutatemio...Android è uno strumento stupendo ma sto per impazzire, rischio di buttare tutto dalla finesta :-(
Grazie!!

ps:non sò se ho postato nella giusta sezione...

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3489
  • Respect: +507
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:Problema Variabili Globali
« Risposta #1 il: 01 Marzo 2011, 21:08:22 CET »
0
Hai modificato il manifest come spiegato nel tutorial che trovi sul sito?

Offline Alex

  • Nuovo arrivato
  • *
  • Post: 7
  • Respect: 0
    • Mostra profilo
Re:Problema Variabili Globali
« Risposta #2 il: 02 Marzo 2011, 00:31:05 CET »
0
Si nel manifest ho aggiunto la classe.

Offline Alex

  • Nuovo arrivato
  • *
  • Post: 7
  • Respect: 0
    • Mostra profilo
Re:Problema Variabili Globali
« Risposta #3 il: 11 Marzo 2011, 16:25:41 CET »
0
Scusate se chiudo il post così tardi ma ho avuto problemi con il pc!!

Comunque ho risolto..il problema era nel Menifest, avevo aggiunto la giusta classe ma il problema era su altre righe di codice!

Volevo fare i complimenti per l'ottimo forum, mi sta aiutando tantissimo nel programmare con Android!
Grazie a tutti!!