Autore Topic: Problema con spinner  (Letto 739 volte)

Offline AriTiAdoro

  • Utente junior
  • **
  • Post: 98
  • Da soli non si va da nessuna parte!!
  • Respect: +1
    • Mostra profilo
  • Sistema operativo:
    Windows 7
Problema con spinner
« il: 17 Ottobre 2011, 17:03:40 CEST »
0
Ciao a tutti ragazzi.
Ho un problema stranissimo che non capisco.
Ho uno spinner con alcuni elementi; quando seleziono un elemento mi salvo l'elemento selezionato in una variabile ;poi tento di usarla al di fuori del metodo setOnItemSelectedListener(new OnItemSelectedListener() , e mi da errore;ecco il codice:


Codice (Java): [Seleziona]
...
public String el;
public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
       ...

array_spinner=new String[5];
        array_spinner[0]="Bar";
        array_spinner[1]="Ristorante";
        array_spinner[2]="Pizzeria";
        array_spinner[3]="IMPS";
        array_spinner[4]="Ufficio postale";


 ArrayAdapter adapter = new ArrayAdapter(this,android.R.layout.simple_spinner_item, array_spinner);
        s.setAdapter(adapter);
       
        s.setOnItemSelectedListener(new OnItemSelectedListener() {
                @Override
                public void onItemSelected(AdapterView<?> adapterView, View view, int position, long id) {
                 String item = (String) adapterView.getSelectedItem();
                 
               
                 el=item;
}

                        @Override
                        public void onNothingSelected(AdapterView<?> arg0) {
                                // TODO Auto-generated method stub
                               
                        }
       
        });


Log.i("elemento",el);  //mi da errore sul Log


Il problema mi si pone perchè devo utilizzare il valore selezionato in un altra Activity...
Simo :)

Offline teskio

  • Moderatore globale
  • Utente normale
  • *****
  • Post: 387
  • Respect: +118
    • Github
    • Google+
    • Mostra profilo
    • Skullab
  • Dispositivo Android:
    Cubot GT99 / SurfTab Ventos 10.1
  • Play Store ID:
    Skullab Software
  • Sistema operativo:
    windows 7 / ubuntu 12.04
Re:Problema con spinner
« Risposta #1 il: 17 Ottobre 2011, 17:34:18 CEST »
0
Non credo che sia l'implementazione più consona da usare quella che hai creato... comunque : Hasta el LogCat siempre!

Offline AriTiAdoro

  • Utente junior
  • **
  • Post: 98
  • Da soli non si va da nessuna parte!!
  • Respect: +1
    • Mostra profilo
  • Sistema operativo:
    Windows 7
Re:Problema con spinner
« Risposta #2 il: 17 Ottobre 2011, 17:45:01 CEST »
0
Ah. Se mi dici che non va bene l'implementazione allora cambio direttamente quella cosi faccio le cose per bene.. In che modo lo faresti?Dichiarando gli elemeni dello spinner nel file xml?
Simo :)

Offline AriTiAdoro

  • Utente junior
  • **
  • Post: 98
  • Da soli non si va da nessuna parte!!
  • Respect: +1
    • Mostra profilo
  • Sistema operativo:
    Windows 7
Re:Problema con spinner
« Risposta #3 il: 17 Ottobre 2011, 17:50:18 CEST »
0
Il LogCat comunque è questo; dice che al Log.i si passa null;almeno mi sembra dica cosi...
Codice (Java): [Seleziona]
10-17 15:47:15.778: ERROR/AndroidRuntime(274): FATAL EXCEPTION: main
10-17 15:47:15.778: ERROR/AndroidRuntime(274): java.lang.RuntimeException: Unable to start activity ComponentInfo{tesi.android/tesi.android.DecidiSegnalazioni}: java.lang.NullPointerException: println needs a message
10-17 15:47:15.778: ERROR/AndroidRuntime(274):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663)
10-17 15:47:15.778: ERROR/AndroidRuntime(274):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
10-17 15:47:15.778: ERROR/AndroidRuntime(274):     at android.app.ActivityThread.access$2300(ActivityThread.java:125)
10-17 15:47:15.778: ERROR/AndroidRuntime(274):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
10-17 15:47:15.778: ERROR/AndroidRuntime(274):     at android.os.Handler.dispatchMessage(Handler.java:99)
10-17 15:47:15.778: ERROR/AndroidRuntime(274):     at android.os.Looper.loop(Looper.java:123)
10-17 15:47:15.778: ERROR/AndroidRuntime(274):     at android.app.ActivityThread.main(ActivityThread.java:4627)
10-17 15:47:15.778: ERROR/AndroidRuntime(274):     at java.lang.reflect.Method.invokeNative(Native Method)
10-17 15:47:15.778: ERROR/AndroidRuntime(274):     at java.lang.reflect.Method.invoke(Method.java:521)
10-17 15:47:15.778: ERROR/AndroidRuntime(274):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
10-17 15:47:15.778: ERROR/AndroidRuntime(274):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
10-17 15:47:15.778: ERROR/AndroidRuntime(274):     at dalvik.system.NativeStart.main(Native Method)
10-17 15:47:15.778: ERROR/AndroidRuntime(274): Caused by: java.lang.NullPointerException: println needs a message
10-17 15:47:15.778: ERROR/AndroidRuntime(274):     at android.util.Log.println_native(Native Method)
10-17 15:47:15.778: ERROR/AndroidRuntime(274):     at android.util.Log.i(Log.java:143)
10-17 15:47:15.778: ERROR/AndroidRuntime(274):     at tesi.android.DecidiSegnalazioni.onCreate(DecidiSegnalazioni.java:88)
10-17 15:47:15.778: ERROR/AndroidRuntime(274):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
10-17 15:47:15.778: ERROR/AndroidRuntime(274):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627)
10-17 15:47:15.778: ERROR/AndroidRuntime(274):     ... 11 more
Simo :)

Offline teskio

  • Moderatore globale
  • Utente normale
  • *****
  • Post: 387
  • Respect: +118
    • Github
    • Google+
    • Mostra profilo
    • Skullab
  • Dispositivo Android:
    Cubot GT99 / SurfTab Ventos 10.1
  • Play Store ID:
    Skullab Software
  • Sistema operativo:
    windows 7 / ubuntu 12.04
Re:Problema con spinner
« Risposta #4 il: 17 Ottobre 2011, 21:11:35 CEST »
0
Dicevo che non è consona perchè come puoi vedere dal logcat l'elemento che hai settato nel listener è nullo. Questo perchè il metodo getSelectedItem() ti ritorna l'elemento già selezionato e visibile nell'adapter, mentre invece dovresti usare getItemAtPosition(int position) all'interno del listener.

Offline AriTiAdoro

  • Utente junior
  • **
  • Post: 98
  • Da soli non si va da nessuna parte!!
  • Respect: +1
    • Mostra profilo
  • Sistema operativo:
    Windows 7
Re:Problema con spinner
« Risposta #5 il: 17 Ottobre 2011, 21:35:30 CEST »
0
Ok ho capito l'errore.
Però mettendo                String item =adapterView.getItemAtPosition(position)

mi da lo stesso errore :(
Simo :)