Autore Topic: Problema nell'acquisizione Stringa da spinner  (Letto 907 volte)

Offline slasher

  • Nuovo arrivato
  • *
  • Post: 37
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Emulatore ADT :-D
  • Sistema operativo:
    Windows Vista (purtroppo) \ Linux Ubuntu
Problema nell'acquisizione Stringa da spinner
« il: 22 Gennaio 2011, 18:51:18 CET »
0
Ciao ragazzi nella parte del progetto che sto affrontando ho relative layout con 3 editable text e uno spinner da cui selezionare una stringa. Le 4 stringe (3 dell'editable più quella dello spinner) le utilizzo poi per mandare una richiesta HTTP a un server. Il problema è che mi da problemi con la stringa presa dallo spinner

Codice (Java): [Seleziona]
........
Spinner spinner;
........
// qui inizializzo con generi.xml l'array per la creazione
private ArrayAdapter<String> createSpinnerAdapter() {
                String[] data = getResources().getStringArray(R.array.generi);
                ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item, data);
                return arrayAdapter;
}
.........
// qui prendo le stringhe per crearmi la mia richiesta http

                                final EditText usText = (EditText)findViewById(R.id.username);
                                final EditText pwText = (EditText)findViewById(R.id.password);
                                final EditText nmText = (EditText)findViewById(R.id.nomegruppo);
                                   
                                int selezione=spinner.getSelectedItemPosition();
                                                       
                                String username = usText.getText().toString();
                                String password = pwText.getText().toString();
                                String nome_band = nmText.getText().toString();
                               
                                String genere_band = spinner.getItemAtPosition(selezione).toString();
                                String richiesta = new String();
                                richiesta = "?username="+ URLEncoder.encode(username, "UTF-8")+"&password="+ URLEncoder.encode(password, "UTF-8")+"&nome="+URLEncoder.encode(nome_band, "UTF-8")+"&genere="+URLEncoder.encode(genere_band, "UTF-8");


Allego il LogCat

Codice: [Seleziona]
01-22 17:41:26.887: ERROR/AndroidRuntime(688): FATAL EXCEPTION: Thread-11
01-22 17:41:26.887: ERROR/AndroidRuntime(688): java.lang.NullPointerException: println needs a message
01-22 17:41:26.887: ERROR/AndroidRuntime(688):     at android.util.Log.println_native(Native Method)
01-22 17:41:26.887: ERROR/AndroidRuntime(688):     at android.util.Log.e(Log.java:230)
01-22 17:41:26.887: ERROR/AndroidRuntime(688):    at progetto.prova.HttpClientActivity$3.run(SimpleHttpClientTestActivity.java:153)
01-22 17:41:26.887: ERROR/AndroidRuntime(688):     at java.lang.Thread.run(Thread.java:1019)
01-22 17:41:27.207: ERROR/InputDispatcher(68): channel '407a3eb8 HTTP Connection (server)' ~ Consumer closed input channel or an error occurred.  events=0x8
01-22 17:41:27.207: ERROR/InputDispatcher(68): channel '407a3eb8 HTTP Connection (server)' ~ Channel is unrecoverably broken and will be disposed!


Offline slasher

  • Nuovo arrivato
  • *
  • Post: 37
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Emulatore ADT :-D
  • Sistema operativo:
    Windows Vista (purtroppo) \ Linux Ubuntu
Re:Problema nell'acquisizione Stringa da spinner
« Risposta #1 il: 24 Gennaio 2011, 10:38:23 CET »
0
nessuno?

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3487
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:Problema nell'acquisizione Stringa da spinner
« Risposta #2 il: 24 Gennaio 2011, 10:41:48 CET »
0
Immagino che da qualche parte hai un Log.e(...).
L'eccezione che ottieni sta a significare che la stringa che passi come secondo parametro è a null.
Metti qualche tracciamento qua e là e vedrai dove sta il problema, ma come puoi vedere dallo stacktrace probabilmente il problema è all'interno del thread che gestisce la connessione http, più precisamente nella classe SimpleHttpClientTestActivity alla riga 153

« Ultima modifica: 24 Gennaio 2011, 10:43:42 CET da Ricky` »

Offline slasher

  • Nuovo arrivato
  • *
  • Post: 37
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Emulatore ADT :-D
  • Sistema operativo:
    Windows Vista (purtroppo) \ Linux Ubuntu
Re:Problema nell'acquisizione Stringa da spinner
« Risposta #3 il: 24 Gennaio 2011, 11:06:16 CET »
0
effettivamente il problema è proprio li ma non capisco perché se non metto lo spinner il problema non me lo da..
la riga 153 è effettivamente

Codice (Java): [Seleziona]
151      catch (Exception e) {
                   152                  showMessageOnOutput(e.getMessage());
                   153                  Log.e(LOG_TAG, e.getMessage());                                    

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3487
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:Problema nell'acquisizione Stringa da spinner
« Risposta #4 il: 24 Gennaio 2011, 11:10:34 CET »
0
Mi dispiace ma con così poco codice/dettagli è difficile dirlo.
Prova tramite il debugger a vedere se le variabili hanno il valore che ti aspetti.

Offline 7h38ugg3r

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 1200
  • Respect: +133
    • riccardofischetti
    • th38ugg3r
    • @7h38ugg3r
    • Mostra profilo
  • Dispositivo Android:
    Galaxy-S GT I-9000/ ASUS Eee Pad Transformer
  • Play Store ID:
    Riccardo Fischetti
  • Sistema operativo:
    OS X Lion / Linux Mint 11 (Katya)
Re:Problema nell'acquisizione Stringa da spinner
« Risposta #5 il: 24 Gennaio 2011, 11:12:00 CET »
0
prova a rimuovere il Log.e e mettere un semplice System.out.println per monitorare l'errore....
Quell'errore alla riga 153 te lo da perché il messaggio è null, mentre Log.e si aspetta un valore non nullo.
Al più, verifica se è != null prima di stampare....
a questo punto dovresti vedere dove sta il reale problema.
7h38ugg3r<=>thebugger
Non conosci Java? Allora sei nel posto sbagliato!

http://www.androidpatterns.com/

Offline slasher

  • Nuovo arrivato
  • *
  • Post: 37
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Emulatore ADT :-D
  • Sistema operativo:
    Windows Vista (purtroppo) \ Linux Ubuntu
Re:Problema nell'acquisizione Stringa da spinner
« Risposta #6 il: 24 Gennaio 2011, 11:34:26 CET »
0
ho risolto semplicemente mettendo nella dichiarazione iniziale

Codice (Java): [Seleziona]
public Spinner spinner;
invece di
Codice (Java): [Seleziona]
Spinner spinner;
:-D
errori di gioventù  :D