Autore Topic: Controllo inserimento numero nell'EditText  (Letto 3909 volte)

Offline MrKrabs

  • Utente junior
  • **
  • Post: 94
  • Respect: +4
    • Mostra profilo
Controllo inserimento numero nell'EditText
« il: 12 Gennaio 2011, 13:45:08 CET »
0
Codice (Java): [Seleziona]
String edText = EditText.getText().toString();
int lungedText = edText.length();            
       
        if(lungedText==0){
                // devi inserire un numero!
               
        }else{
               //insert numero}

Dovrei controllare se viene inserito o meno un numero nell'EditText.

Quando eseguo, al click su aggiungi numero, lasciando l'editText vuoto, l'applicazione si arresta.

Dove sbaglio?

Offline MrKrabs

  • Utente junior
  • **
  • Post: 94
  • Respect: +4
    • Mostra profilo
Re:Controllo inserimento numero nell'EditText
« Risposta #1 il: 12 Gennaio 2011, 13:59:13 CET »
0
Scusate risolto.
non capisco perchè ma la riga che ho aggiunto gli dava fastidio.

Codice (Java): [Seleziona]
String edText = EditText.getText().toString();
int lungedText = edText.length();      
float edText2 = Float.parseFloat( edText );    // questa riga
       
        if(lungedText==0){
                // devi inserire un numero!
               
        }else{
               //insert numero}

Offline Nicola_D

  • Utente storico
  • *****
  • Post: 2479
  • SBAGLIATO!
  • Respect: +323
    • Github
    • Google+
    • nicoladorigatti
    • Mostra profilo
  • Dispositivo Android:
    Nexus 6p, Nexus 4, Nexus S, Nexus 7(2012)
  • Sistema operativo:
    Windows 7
Re:Controllo inserimento numero nell'EditText
« Risposta #2 il: 12 Gennaio 2011, 14:01:50 CET »
+1
Scusate risolto.
non capisco perchè ma la riga che ho aggiunto gli dava fastidio.

Codice (Java): [Seleziona]
String edText = EditText.getText().toString();
int lungedText = edText.length();      
float edText2 = Float.parseFloat( edText );    // questa riga
       
        if(lungedText==0){
                // devi inserire un numero!
               
        }else{
               //insert numero}
perche il parse di una stringa va sempre messo nel try catch
IMPORTANTE:NON RISPONDO A PROBLEMI VIA MESSAGGIO PRIVATO
LOGCAT: Non sai cos'è? -> Android Debug Bridge | Android Developers
               Dov'è in Eclipse? -> Window -> Open Prospective -> DDMS e guarda in basso!
[Obbligatorio] Logcat, questo sconosciuto! (Gruppo AndDev.it LOGTFO) - Android Developers Italia

Offline MarcoDuff

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 1073
  • Respect: +202
    • Google+
    • marcoduff
    • Mostra profilo
    • MarcoDuff's Blog
  • Dispositivo Android:
    Samsung Galaxy Nexus
  • Play Store ID:
    MarcoDuff
  • Sistema operativo:
    Windows 7
Re:Controllo inserimento numero nell'EditText
« Risposta #3 il: 12 Gennaio 2011, 14:32:24 CET »
+1
Gli da fastidio molto probabilmente perchè in edText non c'è un numero.

Puoi sostituire il tutto con questo codice (come consigliato da Nicola_D):
Codice (Java): [Seleziona]
String edText = EditText.getText().toString();
try {      
     float edText2 = Float.parseFloat( edText );
     // TODO: Tutto procede correttamente, continua qui!
}
catch(NumberFormatException e) {
     // TODO: Devi inserire un numero!
}

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:Controllo inserimento numero nell'EditText
« Risposta #4 il: 12 Gennaio 2011, 19:01:00 CET »
0
Ma non ti conviene impostare nell'EditText l'attributo android:inputType="numberDecimal"?
Cosí facendo potranno essere inseriti solo numeri, inclusi i decimali.
Nel caso tu non volessi i decimali dovresti usare semplicemente "number", ma ho pensato che ti servissero decimali dato che usi un float.

EDIT: se il problema é solo controllare se la stringa é vuota, basta prima creare una stringa col contenuto dell'EditText e controllare se é vuota
« Ultima modifica: 12 Gennaio 2011, 19:03:23 CET da blackgin »
Postate il LogCat LogCat LogCat LogCat LogCat

Offline MrKrabs

  • Utente junior
  • **
  • Post: 94
  • Respect: +4
    • Mostra profilo
Re:Controllo inserimento numero nell'EditText
« Risposta #5 il: 12 Gennaio 2011, 19:36:43 CET »
0
sisi, utilizzo già android:inputType="numberDecimal"  ma il mio problema era assicurarmi che l'utente abbia effettivamente inserito qualcosa (cioè un numero) e non lasci vuoto l'editText.
Cmq come detto prima ho risolto dato che era questa riga a dare problemi float edText2 = Float.parseFloat( edText );

Grazie ancora

Offline Giovanni D'Addabbo

  • Utente normale
  • ***
  • Post: 163
  • Respect: +8
    • Google+
    • giovannid
    • giovanni.daddabbo
    • magoscuro
    • Mostra profilo
    • Rhubbit.it - Sviluppo app Android/iOs
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Rhubbit srl
  • Sistema operativo:
    Windows/Mac/Linux
Re:Controllo inserimento numero nell'EditText
« Risposta #6 il: 13 Gennaio 2011, 16:46:53 CET »
0
beh, se dovevi semplicemente controllare che l'utente ha inserito qualcosa....allora potevi semplicemente risolvere con il controllo sulla lunghezza del testo inserito: se 0 allora l'utente non ha inserito nulla (praticamente ti risparmi un parse) ;)
se invece volevi necessariamente un numero: una try catch con all'interno il parse , se va in catch...evidentemente non è un numero ;)

Offline DarkPhoinix

  • Utente junior
  • **
  • Post: 133
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    HTC HD2 & Samsung Galaxy SII
  • Sistema operativo:
    LNX
Re:Controllo inserimento numero nell'EditText
« Risposta #7 il: 29 Aprile 2011, 15:43:29 CEST »
0
potevi semplicemente risolvere con il controllo sulla lunghezza del testo inserito: se 0 allora l'utente non ha inserito nulla (praticamente ti risparmi un parse) ;)


ciao, scusa potresti fare un esempio pratico con un pezzo di codice?

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:Controllo inserimento numero nell'EditText
« Risposta #8 il: 29 Aprile 2011, 16:36:45 CEST »
+1
ciao, scusa potresti fare un esempio pratico con un pezzo di codice?
Codice (Java): [Seleziona]
String s = "blablabla"
int lunghezza = s.length();
Postate il LogCat LogCat LogCat LogCat LogCat

Offline DarkPhoinix

  • Utente junior
  • **
  • Post: 133
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    HTC HD2 & Samsung Galaxy SII
  • Sistema operativo:
    LNX
Re:Controllo inserimento numero nell'EditText
« Risposta #9 il: 30 Aprile 2011, 17:46:13 CEST »
0
io vorrei controllare che non siano lasciati campi vuoti:
Codice: [Seleziona]
import android.app.Activity;
import android.content.ContentValues;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.widget.TextView;

public class Result extends Activity{

        public void onCreate(Bundle savedInstanceState) {
                super.onCreate (savedInstanceState);
                setContentView(R.layout.result);
       
                TextView resultText = (TextView) findViewById(R.id.resultText);
                Bundle bundle = getIntent().getExtras();
               
                if (bundle.getString("Cancel") != null ) {
                        resultText.setText(getString(R.string.cancelOp));
                } else {
///////////qua vorrei mettere una if che controlla se nel edittext è stato inserito qualcosa!//////////////////////
                        if bookTitle || bookAuthor || bookISBN sono vuoti {

                     resultText.setText(getString(R.string.erroreDigt));

                     }else{

                        String bookTitle = bundle.getString("BookTitle");
                        String bookAuthor = bundle.getString("BookAuthor");
                        String bookISBN = bundle.getString("BookISBN");
                       
                       
                        InsertBook(bookTitle,bookAuthor,bookISBN);       
                               
                        resultText.setText(
                                        getString(R.string.resultOK) + "\n" + bookTitle + "\n" + bookAuthor + "\n" + bookISBN);
                }}
}
       
        private void InsertBook(String title, String author, String isbn) {
                DatabaseHelper databaseHelper = new DatabaseHelper(this);
                SQLiteDatabase db = databaseHelper.getWritableDatabase();
               
                ContentValues cv = new ContentValues();
                cv.put(DatabaseHelper.TITLE, title);
                cv.put(DatabaseHelper.AUTHOR, author);
                cv.put(DatabaseHelper.ISBN, isbn);
               
                db.insert("books", DatabaseHelper.TITLE, cv);
                db.close();
               
        }

}



scusate la if con linguaggio inventato....  :-(
« Ultima modifica: 30 Aprile 2011, 17:49:14 CEST da DarkPhoinix »

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:Controllo inserimento numero nell'EditText
« Risposta #10 il: 30 Aprile 2011, 20:41:15 CEST »
+1
Ottieni la stringa tramite EditText.getText() e poi controlla la lunghezza col metodo che ti ho scritto sopra. Non vedo difficoltà
Postate il LogCat LogCat LogCat LogCat LogCat

Offline DarkPhoinix

  • Utente junior
  • **
  • Post: 133
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    HTC HD2 & Samsung Galaxy SII
  • Sistema operativo:
    LNX
Re:Controllo inserimento numero nell'EditText
« Risposta #11 il: 01 Maggio 2011, 21:41:07 CEST »
0
non mi va dove sbaglio? perdonatemi..........
Codice: [Seleziona]
String nome = bundle.getString("Nome");
                       
                        String nomelenght= "Nome";
                   int lunghezza = nomelenght.length();
                       
                        if (lunghezza == 0){
                                resultText.setText(getString(R.string.erroreD));
« Ultima modifica: 01 Maggio 2011, 21:46:02 CEST da DarkPhoinix »

Offline DarkPhoinix

  • Utente junior
  • **
  • Post: 133
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    HTC HD2 & Samsung Galaxy SII
  • Sistema operativo:
    LNX
Re:Controllo inserimento numero nell'EditText
« Risposta #12 il: 01 Maggio 2011, 21:45:30 CEST »
0
 :-) Grazie risolto!

Codice: [Seleziona]
String nome = bundle.getString("Nome");
                       
                        String nomelenght=nome ;
                   int lunghezza = nomelenght.length();
                       
                        if (lunghezza == 0){
                                resultText.setText(getString(R.string.erroreD));

Scusate posto il codice corretto  String nomelenght=nome ;
« Ultima modifica: 01 Maggio 2011, 21:50:06 CEST da DarkPhoinix »