2017-02-03 1 views
-3

Ich bin neu in der Android-Entwicklung und habe versucht, eine App mit dem folgenden Code zu erstellen, aber sobald ich den "Score" -Button drücke, stürzt die App ab. Ich habe versucht, eine Toast-Nachricht unter der OnClick-Methode für die Schaltfläche "Score" hinzuzufügen, um das zu verhindern, aber es scheint, dass ich nicht Int und String aus dem gleichen EditText unter der OnClick-Methode abrufen kann (es schließt die App, wenn ich dies tue) damit). Die folgenden Codes wurden versucht, aber ohne Glück. Kann mir jemand mit dem richtigen Code helfen, damit die App nicht abstürzt, wenn EditText leer ist? Ich habe den folgenden Testcode ausprobiert, aber das Problem ist immer noch das gleiche.Wie kann verhindert werden, dass die App mit EditText stoppt (für Zahlen) ist leer?

displayScore1.getText().toString().equals("") 
displayScore1.getText().toString().matches("") 
displayScore1.getText().length() != 0 

package com.example.android.test; 

import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.Button; 
import android.widget.EditText; 
import android.widget.TextView; 
import android.widget.Toast; 

import org.w3c.dom.Text; 

public class MainActivity extends AppCompatActivity { 

    int score1; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     Button test = (Button)findViewById(R.id.button); 
     test.setOnClickListener(new View.OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       EditText displayScore1 = (EditText) findViewById(R.id.score); 
       score1 = Integer.parseInt(displayScore1.getText().toString()); 

       if (!displayScore1.getText().toString().trim().isEmpty()){ 
        displayText(score1); 
       } 
       else{ 
        Toast.makeText(MainActivity.this, "Please enter the Number of Tricks", Toast.LENGTH_SHORT).show(); 
       } 
      } 
      }); 
    } 

    public void displayText(int message){ 
     TextView display = (TextView)findViewById(R.id.text); 
     display.setText("" + message); 
    } 


} 

Antwort

0

wie dieses Versuchen

displayScore1.getText().toString().trim().length()==0{ 
//your code 

} 
+0

Hat nicht funktioniert :(Ist es, weil ich nicht zwei verschiedene Werte aus der gleichen Ansicht unter dem onClick extrahieren kann? Denn wenn ich die Methode drehen nur String zu bekommen, es funktioniert gut. Aber die Sache ist , der Haupttyp, den ich aus diesem Edittext herausstreiche, ist Int. – user7440913

1

Sie jeden Ansatz verwenden können, aber bewusst mit Leerzeichen und neue Zeilen zu sein braucht. Ein Beispiel ist unten gezeigt.

if(!displayScore1.getText().toString().trim().isEmpty()){ 
// edittext has some thing 
}else{ 
//do what you want to do when edittext is empty 
} 
+0

Leider hat es nicht funktioniert.Ich habe über einen Testcode eingefügt, den ich verwendet habe, um zu demonstrieren, was ich tue.Bitte lassen Sie mich wissen, wenn ich etwas verpasse in der Syntax. – user7440913

Verwandte Themen