Prüfen ob Edit Text leer ist

  • Hallo zusammen,
    Bin neu bei dem Programmieren von Android Apps und habe eine kleines Problem :( :( :( . Habe auch schon im Forum gesehen, dass zwei Theards mit dem gleichen Problem gibt, jedoch konnte ich anhand der Informationen dort mein Problem nicht lösen...
    Nun zu dem Problem:
    Die App soll zwei Zahlen addieren. Erst werden die beiden Zahlen jeweils in ein EditText eingetragen (Input Type: Number). Dann soll durch das Auslösen des "ADD" Buttons unten das Ergebnis in einem TextView ausgegeben werden. Das funktioniert auch gut und habe bisher alles verstanden!
    Habe den Code und das Layout aus dem folgenden Video: https://www.youtube.com/watch?v=dFlPARW5IX8 bei Minute 29:06 ist der Code ganz zu sehen.


    Nun wollte ich den Code soweit ergänzen, dass es bei dem auslassen eines EditText (also wenn ein Feld, oder beide freigelassen werden und man trotzdem ADD drück) in dem TextView die Fehlermeldung "Bitte beide Felder ausfuellen" eintragen. Da ansonsten die App einfach abstürzt.


    Der Ergänzte Code sieht wie folgt aus:



    String s1 = firstNumEditText.getText().toString();
    String s2 = secondNumEditText.getText().toString();



    // funktioniert beides nicht ...
    //if(firstNumEditText.getText().toString().isEmpty()||secondNumEditText.getText().toString().isEmpty()){
    if(s1.equals("")||s2.equals("")){
    resultTextView.setText("Bitte beide Felder ausfuellen");
    }else {
    int result = num1 + num2;
    resultTextView.setText(result + "");
    }Nun stützt die App trotzdem bei dem Drücken des ADD-Buttons ab. Habe schon einiges Probiert.. kann mir jemand bei dem Problem helfen? Habe es mit Equals, isEmpty ... sogar mit length (welches gar nicht ging) ausprobiert. Liegt es daran dass ich bei Input Type Number Eingetragen habe bei EditText? Würde mich über eure Antworten freuen. Liebe GrüßeP4inZ

  • Hallo


    Welche Fehler Meldung bekommst du den, Poste mal dein Error Log.



    Eigentlich müsste es gehen.
    Zeige mal deine gesamte onClick Methode und wo du die EditTexte setzt.
    Sind die auch in der onClick.


    Auch interessant ist weiche Eigenschaft du für deinen EditText im Layout hast.
    Text, Numerisch.


    Wenn zb in den EditText ein Text und keine Zahl steht brauchst du dich nicht wundern warum beim Addieren die App abstürzt.


    Du siehst es gibt mehre Gründe warum das passieren kann.


    Das können wir aber leider nicht sehen.
    Ohne Error Log und Code ist Hilfe schwer.


    Poste den Code bitte in den dafür vorgesehen Blog.




    @Adreoiddas sollte gehen. Das alleine wird es nicht sein.
    Ich denke der Fehler ligt wo anders. Aber ohne Code, Error log wird das nichts.
    Mit einer sinnvollen Hilfe. Deine Variante würde gehen.
    Nur würde ich sagen das Fehler wo anders ist und auch das es wo anders abstürzt.

  • Hallo,


    @Adreoid funktionier leider auch nicht:/


    @jogimuc
    Hier ist der ErrorLog:


    D/AndroidRuntime: Shutting down VM
    E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.example.test003, PID: 8004
    java.lang.NumberFormatException: For input string: ""
    at java.lang.Integer.parseInt(Integer.java:627)
    at java.lang.Integer.parseInt(Integer.java:650)
    at com.example.test003.MainActivity$1.onClick(MainActivity.java:28)
    at android.view.View.performClick(View.java:7125)
    at android.view.View.performClickInternal(View.java:7102)
    at android.view.View.access$3500(View.java:801)
    at android.view.View$PerformClick.run(View.java:27336)
    at android.os.Handler.handleCallback(Handler.java:883)
    at android.os.Handler.dispatchMessage(Handler.java:100)
    at android.os.Looper.loop(Looper.java:214)
    at android.app.ActivityThread.main(ActivityThread.java:7356)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930)
    I/Process: Sending signal. PID: 8004 SIG: 9
    Process 8004 terminated.



    Die beiden EditTexte sind mit dem InputType: Number versehen, also können dort nur Zahlen eingegeben werden. Addieren Tue ich doch nur wenn die Abfrage false ergibt. Davor wird überprüft.
    Hier der Komplette OnClick Abschnitt:



    public void onClick(View v) {
    EditText firstNumEditText = (EditText) findViewById(R.id.firstNumEditText);
    EditText secondNumEditText = (EditText) findViewById(R.id.secondNumEditText);
    TextView resultTextView = (TextView) findViewById(R.id.resultTextView);



    // parse
    int num1 = Integer.parseInt(firstNumEditText.getText().toString());
    int num2 = Integer.parseInt(secondNumEditText.getText().toString());


    String s1 = firstNumEditText.getText().toString();
    String s2 = secondNumEditText.getText().toString();



    // funktioniert beides nicht ...
    //if(firstNumEditText.getText().toString().isEmpty()||secondNumEditText.getText().toString().isEmpty()){
    //if(s1.equals("")||s2.equals("")){
    if(0==firstNumEditText.getText().length()){
    int ergebnis = 99;
    resultTextView.setText(ergebnis + "");


    }else {
    int result = num1 + num2;
    resultTextView.setText(result + "");
    }
    }

  • hallo
    Ich habe es mir schon gedacht das es an den parsen der edittexte zu int liegt.
    Das sagt auch das error log.


    Die int variablen num1 uns 2 solltest du erst nach dem prüfen erstellen.


    Oder es zu mindestens in ein try catch packen .
    Denn genau da stürz das Programm ab wenn die edittexte lehr sind.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!