Autore Topic: Gestire EditText vuoto collegato ad un button  (Letto 902 volte)

Offline dom4

  • Utente normale
  • ***
  • Post: 158
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    Vodafone Ideos, Nexus 5
Gestire EditText vuoto collegato ad un button
« il: 15 Giugno 2011, 16:57:37 CEST »
0
Nella mia applicazione scelgo un oggetto da uno spinner ed inserisco manualmente la quantità per ogni oggetto selezionato,carico in un arrayList la coppia oggetto quantita cliccando su un bottone aggiungi.Ho provato a cliccare aggiungi senza aver inserito la quantita,il programma crasha perchè si aspetta un double.come posso gestire questo problema?
Codice (Java): [Seleziona]
 aggiungi.setOnClickListener(new OnClickListener()
                   {
                         
                          public void onClick(View v)
                          {
                      String nomeProdotto =(String) sp.getSelectedItem();
                      String qta = quantita.getText().toString();
                      double quant = Double.parseDouble(qta.toString());
                   
                       int d = (int) Math.round(quant);
                       Log.i("Log.INFO", "D " + d);
                   
                      for(ProdottoConcorsiPortale p : P)
                      {
                          ProdottoConcorsoTransazionePunti current = null ;
                          if(nomeProdotto.equalsIgnoreCase(p.getDescrizione()) && quant > 0)
                          {
                                  Log.i("ID","Valore id dell'oggetto selezionato " + p.getId());
                                  current = new ProdottoConcorsoTransazionePunti();
                                  current.setID_Prodotto(p.getId());
                                  current.setQuantitaAcquistata(d);
                                  current.setDescrizione(p.getDescrizione());
                                  listaInseriti.add(current);
                           }
                         
                          if(nomeProdotto.equalsIgnoreCase(p.getDescrizione()) && quant <= 0)
                          {
                                Toast t =  Toast.makeText(getApplicationContext(),"La quantità non può essere 0.Reinseriscila per favore", Toast.LENGTH_LONG);
                                t.show();
                                quantita.setText("");
                          }
                         
                      }
                      quantita.setText("");
                 
                    listView = ( ListView ) findViewById( R.id.listView1 );
                    prod = new ProdottiAdapter(getApplicationContext(), R.layout.row, listaInseriti);
                        listView.setAdapter(prod);
                   
                     }
                         
                   });   
Il logcat:
Codice: [Seleziona]
06-15 14:46:41.931: INFO/ActivityManager(61): Starting: Intent { cmp=com.DoM/.CaricaProdottiActvity (has extras) } from pid 960
06-15 14:46:42.272: INFO/(960): intent ricevuti
06-15 14:46:42.961: INFO/ActivityManager(61): Displayed com.DoM/.CaricaProdottiActvity: +907ms
06-15 14:46:43.721: DEBUG/AndroidRuntime(960): Shutting down VM
06-15 14:46:43.721: WARN/dalvikvm(960): threadid=1: thread exiting with uncaught exception (group=0x40015560)
06-15 14:46:43.751: ERROR/AndroidRuntime(960): FATAL EXCEPTION: main
06-15 14:46:43.751: ERROR/AndroidRuntime(960): java.lang.NumberFormatException:
06-15 14:46:43.751: ERROR/AndroidRuntime(960):     at org.apache.harmony.luni.util.FloatingPointParser.parseDouble(FloatingPointParser.java:267)
06-15 14:46:43.751: ERROR/AndroidRuntime(960):     at java.lang.Double.parseDouble(Double.java:318)
06-15 14:46:43.751: ERROR/AndroidRuntime(960):     at com.DoM.CaricaProdottiActvity$1.onClick(CaricaProdottiActvity.java:77)
06-15 14:46:43.751: ERROR/AndroidRuntime(960):     at android.view.View.performClick(View.java:2485)
06-15 14:46:43.751: ERROR/AndroidRuntime(960):     at android.view.View$PerformClick.run(View.java:9080)
06-15 14:46:43.751: ERROR/AndroidRuntime(960):     at android.os.Handler.handleCallback(Handler.java:587)
06-15 14:46:43.751: ERROR/AndroidRuntime(960):     at android.os.Handler.dispatchMessage(Handler.java:92)
06-15 14:46:43.751: ERROR/AndroidRuntime(960):     at android.os.Looper.loop(Looper.java:123)
06-15 14:46:43.751: ERROR/AndroidRuntime(960):     at android.app.ActivityThread.main(ActivityThread.java:3683)
06-15 14:46:43.751: ERROR/AndroidRuntime(960):     at java.lang.reflect.Method.invokeNative(Native Method)
06-15 14:46:43.751: ERROR/AndroidRuntime(960):     at java.lang.reflect.Method.invoke(Method.java:507)
06-15 14:46:43.751: ERROR/AndroidRuntime(960):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
06-15 14:46:43.751: ERROR/AndroidRuntime(960):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
06-15 14:46:43.751: ERROR/AndroidRuntime(960):     at dalvik.system.NativeStart.main(Native Method)

Ho provato con un if:
Codice: [Seleziona]
if(quantita == null)
{
   Toast t = makeText(getApplicationContext(),"Non hai inserito alcuna quantità", Toast.LENGTH_SHORT);
}
Ma non funziona

Offline Ohmnibus

  • Utente senior
  • ****
  • Post: 774
  • Respect: +161
    • Github
    • Google+
    • @ohmnibus
    • Mostra profilo
    • Lords of Knowledge GdR
  • Dispositivo Android:
    Huawei P9 Lite
  • Play Store ID:
    Ohmnibus
  • Sistema operativo:
    Windows 10 x64
Re:Gestire EditText vuoto collegato ad un button
« Risposta #1 il: 17 Giugno 2011, 12:11:59 CEST »
+1
Ho provato con un if:
Codice: [Seleziona]
if(quantita == null)
{
   Toast t = makeText(getApplicationContext(),"Non hai inserito alcuna quantità", Toast.LENGTH_SHORT);
}
Ma non funziona

Prova invece

Codice (Java): [Seleziona]
if(quantita.getText().toString().Length == 0)
{
   Toast t = makeText(getApplicationContext(),"Non hai inserito alcuna quantità", Toast.LENGTH_SHORT);
}

o, meglio ancora, metti

Codice (Java): [Seleziona]
double quant = Double.parseDouble(qta.toString());
in un blocco try/catch, e se viene sollevata eccezione mostri il messaggio "Quantità non specificata o non valida".
Ohmnibus
Le mie app su Play Store

È stata trovata una soluzione al tuo problema? Evidenzia il post più utile premendo . È un ottimo modo per ringraziare chi ti ha aiutato.

Offline dom4

  • Utente normale
  • ***
  • Post: 158
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    Vodafone Ideos, Nexus 5
Re:Gestire EditText vuoto collegato ad un button
« Risposta #2 il: 20 Giugno 2011, 16:28:28 CEST »
0
E' proprio quello che ho fatto,ma non ho avuto il tempo di mettere risolto al topic.
Codice (Java): [Seleziona]
  try{
                         quant = Double.parseDouble(qta.toString());
                        }catch(NumberFormatException e) {
                          Toast t = Toast.makeText(getApplicationContext(), "Devi inserire la quantita",Toast.LENGTH_SHORT);
                          t.show();
                        }

Grazie lo stesso Ohmnibus.