wake-up-neo.net

Überprüfen Sie, ob EditText leer ist.

Ich habe 5 EditTexts in Android für Benutzer zur Eingabe. Ich würde gerne wissen, ob ich eine Methode haben könnte, um alle 5 EditTexts zu überprüfen, ob sie null sind. Gibt es eine Möglichkeit, dies zu tun? 

195
Winona

Ich habe so etwas einmal gemacht;

EditText usernameEditText = (EditText) findViewById(R.id.editUsername);
sUsername = usernameEditText.getText().toString();
if (sUsername.matches("")) {
    Toast.makeText(this, "You did not enter a username", Toast.LENGTH_SHORT).show();
    return;
}
334
cvaldemar
private boolean isEmpty(EditText etText) {
    if (etText.getText().toString().trim().length() > 0) 
        return false;

    return true;
}

OR als Per audrius 

  private boolean isEmpty(EditText etText) {
        return etText.getText().toString().trim().length() == 0;
    }

Wenn die Funktion return false bedeutet, dass edittext not empty ist, und return true bedeutet, dass edittext empty... ist. 

167
SBJ

Verwenden Sie zur Validierung von EditText die Methode EditText # setError für show error und für die Überprüfung eines leeren oder leeren Werts die eingebaute Android-Klasse TextUtils.isEmpty (strVar) , die true zurückgibt, wenn strVar eine Länge von null oder null hat 

EditText etUserName = (EditText) findViewById(R.id.txtUsername);
String strUserName = etUserName.getText().toString();

 if(TextUtils.isEmpty(strUserName)) {
    etUserName.setError("Your message");
    return;
 }

Image taken from Google search

131
MilapTank

versuche dies : 

EditText txtUserName = (EditText) findViewById(R.id.txtUsername);
String strUserName = usernameEditText.getText().toString();
if (strUserName.trim().equals("")) {
    Toast.makeText(this, "plz enter your name ", Toast.LENGTH_SHORT).show();
    return;
}

oder benutze die TextUtils Klasse wie folgt: 

if(TextUtils.isEmpty(strUserName)) {
    Toast.makeText(this, "plz enter your name ", Toast.LENGTH_SHORT).show();
    return;
}
35
Houcine

Viel zu spät zur Party hier, aber ich muss nur Androids eigene TextUtils.isEmpty (CharSequence str) hinzufügen. 

Gibt "true" zurück, wenn die Zeichenfolge null oder 0 ist

Wenn Sie also Ihre fünf EditTexts in eine Liste aufnehmen, lautet der vollständige Code:

for(EditText edit : editTextList){
    if(TextUtils.isEmpty(edit.getText()){
        // EditText was empty
        // Do something fancy
    }
}
27
Qw4z1

Andere Antworten sind richtig, aber machen Sie es auf eine kurze Art und Weise

if(editText.getText().toString().isEmpty()) {
     // editText is empty
} else {
     // editText is not empty
}
18
Xar E Ahmer

Versuche dies

TextUtils.isEmpty(editText.getText());
9
martyglaubitz

Sie können length() von EditText verwenden.

public boolean isEditTextEmpty(EditText mInput){
   return mInput.length() == 0;
}
7
JPMagalhaes

Normalerweise mache ich, was SBJ vorschlägt, aber umgekehrt. Ich finde es einfach einfacher, meinen Code zu verstehen, indem ich anstelle von Doppelnegativen auf positive Ergebnisse prüfe. Möglicherweise fragen Sie nach der Suche nach leeren EdiTexts. Was Sie jedoch wirklich wissen möchten, ist, ob es Inhalte enthält und nicht, dass es nicht leer ist. 

So wie:

private boolean hasContent(EditText et) {
    // Always assume false until proven otherwise
    boolean bHasContent = false; 

    if (et.getText().toString().trim().length() > 0) {
        // Got content
        bHasContent = true;
    }
    return bHasContent;
}

Da SBJ ich es vorziehen würde, "hat keinen Inhalt" (oder false) als Standard zurückzugeben, um Ausnahmen zu vermeiden, weil ich meine Inhaltsprüfung ausgehöhlt habe. Auf diese Weise sind Sie absolut sicher, dass eine true von Ihren Schecks "genehmigt" wurde.

Ich denke auch, dass der Aufruf von if etwas sauberer aussieht:

if (hasContent(myEditText)) {
// Act upon content
} else {
// Got no content!
}

Es hängt sehr stark von der Präferenz ab, aber ich finde es einfacher zu lesen. :)

5
sigcontSE
if(TextUtils.isEmpty(textA.getText())){
            showToast(it's Null");
        }

sie können TextUtils.isEmpty wie mein Beispiel verwenden! Viel Glück

4
Erik Chau

Ich verwende diese Methode, die trim() verwendet, um Leerzeichen zu vermeiden:

EditText myEditText = (EditText) findViewById(R.id.editUsername);
if ("".equals(myEditText.getText().toString().trim()) {
    Toast.makeText(this, "You did not enter a value!", Toast.LENGTH_LONG).show();
    return;
}

ein Beispiel, wenn Sie mehrere EditText´s haben

if (("".equals(edtUser.getText().toString().trim()) || "".equals(edtPassword.getText().toString().trim()))){
        Toast.makeText(this, "a value is missing!", Toast.LENGTH_LONG).show();
        return;
}
4
Elenasys

Ich habe TextUtils dafür verwendet:

if (TextUtils.isEmpty(UsernameInfo.getText())) {
    validationError = true;
    validationErrorMessage.append(getResources().getString(R.string.error_blank_username));
}
3
wildapps
private boolean hasContent(EditText et) {
       return (et.getText().toString().trim().length() > 0);
}
3
LMK

Warum nicht einfach die Schaltfläche deaktivieren, wenn EditText leer ist? IMHO Das sieht professioneller aus:

        final EditText txtFrecuencia = (EditText) findViewById(R.id.txtFrecuencia);  
        final ToggleButton toggle = (ToggleButton) findViewById(R.id.toggleStartStop);
        txtFrecuencia.addTextChangedListener(new TextWatcher() {
        @Override
        public void afterTextChanged(Editable s) {
            toggle.setEnabled(txtFrecuencia.length() > 0);
        }

        @Override
        public void beforeTextChanged(CharSequence s, int start, int count,
                int after) {
        }

        @Override
        public void onTextChanged(CharSequence s, int start, int before,
                int count) {

        }
       });
3
Igor Zelaya

Ich wollte etwas Ähnliches machen. Aber den Textwert aus dem Text bearbeiten zu bekommen und ihn wie (str=="") zu vergleichen, hat für mich nicht funktioniert. Die bessere Option war also:

EditText eText = (EditText) findViewById(R.id.etext);

if (etext.getText().length() == 0)
{//do what you want }

Lief wie am Schnürchen.

2
TheOddAbhi

Probieren Sie dies unter Verwendung von If ELSE If-Bedingungen aus. Sie können Ihre editText-Felder einfach validieren.

 if(TextUtils.isEmpty(username)) {
                userNameView.setError("User Name Is Essential");
                return;
         } else  if(TextUtils.isEmpty(phone)) {
                phoneView.setError("Please Enter Your Phone Number");
                return;
            }
2
Sami Khan

Sie können auch alle EditText-Strings in einer If-Bedingung prüfen: So

if (mString.matches("") || fString.matches("") || gender==null || docString.matches("") || dString.matches("")) {
                Toast.makeText(WriteActivity.this,"Data Incomplete", Toast.LENGTH_SHORT).show();
            }
2

Sie können diese Funktion für jeden Bearbeitungstext aufrufen:

public boolean isEmpty(EditText editText) {
    boolean isEmptyResult = false;
    if (editText.getText().length() == 0) {
        isEmptyResult = true;
    }
    return isEmptyResult;
}
2
dreinoso

"Schau dir das an, ich bin sicher, dass es dir gefallen wird."

log_in.setOnClickListener(new OnClickListener() {

    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub
        username=user_name.getText().toString();
        password=pass_Word.getText().toString();
        if(username.equals(""))
        {
            user_name.setError("Enter username");
        }
        else if(password.equals(""))
        {
            pass_Word.setError("Enter your password");
        }
        else
        {
            Intent intent=new Intent(MainActivity.this,Scan_QRActivity.class);
            startActivity(intent);
        }
    }
});
1
Aris_choice

verwenden Sie TextUtils.isEmpty("Text here"); für den Code einer einzelnen Zeile

1
Anand Savjani
EditText txtUserID = (EditText) findViewById(R.id.txtUserID);

String UserID = txtUserID.getText().toString();

if (UserID.equals("")) 

{
    Log.d("value","null");
}

Sie sehen die Nachricht in LogCat ....

1
Jothi

Ich bevorzuge die Bindung von ButterKnife list und wende dann Aktionen auf der Liste an. Bei EditTexts habe ich beispielsweise die folgenden benutzerdefinierten Aktionen in einer Dienstprogrammklasse definiert (in diesem Fall ButterKnifeActions).

public static <V extends View> boolean checkAll(List<V> views, ButterKnifeActions.Check<V> checker) {
    boolean hasProperty = true;
    for (int i = 0; i < views.size(); i++) {
        hasProperty = checker.checkViewProperty(views.get(i), i) && hasProperty;
    }
    return hasProperty;
}

public static <V extends View> boolean checkAny(List<V> views, ButterKnifeActions.Check<V> checker) {
    boolean hasProperty = false;
    for (int i = 0; i < views.size(); i++) {
        hasProperty = checker.checkViewProperty(views.get(i), i) || hasProperty;
    }
    return hasProperty;
}

public interface Check<V extends View> {
    boolean checkViewProperty(V view, int index);
}

public static final ButterKnifeActions.Check<EditText> EMPTY = new Check<EditText>() {
    @Override
    public boolean checkViewProperty(EditText view, int index) {
        return TextUtils.isEmpty(view.getText());
    }
};

Und im Ansichtscode binde ich die EditTexts an eine Liste und wende die Aktionen an, wenn ich die Ansichten überprüfen muss.

@Bind({R.id.edit1, R.id.edit2, R.id.edit3, R.id.edit4, R.id.edit5}) List<EditView> edits;
...
if (ButterKnifeActions.checkAny(edits, ButterKnifeActions.EMPTY)) {
    Toast.makeText(getContext(), "Please fill in all fields", Toast.LENGTH_SHORT).show();
}

Natürlich kann dieses Muster auch auf beliebige Ansichten in einer beliebigen Anzahl von Ansichten angewendet werden. Der einzige Nachteil, wenn man das so nennen kann, ist die Redundanz von Ansichten. Das heißt, um diese EditTexts zu verwenden, müssten Sie sie auch an einzelne Variablen binden, damit Sie sie mit ihrem Namen referenzieren können, oder Sie müssten sie nach ihrer Position in der Liste referenzieren (edits.get(0) usw.). Persönlich binde ich jeden von ihnen zweimal, einmal an eine einzige Variable und einmal an die Liste und benutze das, was angemessen ist.

0
Saad Farooq

Probieren Sie es aus: In Kotlin 

//button from xml
button.setOnClickListener{                                         
    val new=addText.text.toString()//addText is an EditText
    if(new=isNotEmpty())
    {
         //do something
    }
    else{
        new.setError("Enter some msg")
        //or
        Toast.makeText(applicationContext, "Enter some message ", Toast.LENGTH_SHORT).show()
    }
}

Vielen Dank

0
Sharmad Desai

Um editText ist leer, versuchen Sie einen anderen einfachen Weg:

String star = editText.getText().toString();

if (star.equalsIgnoreCase("")) {
  Toast.makeText(getApplicationContext(), "Please Set start no", Toast.LENGTH_LONG).show();
}
0
Guru

Das Folgende funktioniert für mich in einer Aussage:

if(searchText.getText().toString().equals("")) 
    Log.d("MY_LOG", "Empty");

Zuerst rufe ich einen Text aus der EditText ab, konvertiere ihn in eine Zeichenfolge und vergleiche ihn schließlich mit "" mit der .equals-Methode.

0
Maihan Nijat

diese Funktion funktioniert für mich

private void checkempForm () {

    EditText[] allFields = { field1_txt, field2_txt, field3_txt, field4_txt};
    List<EditText> ErrorFields =new ArrayList<EditText>();//empty Edit text arraylist
            for(EditText edit : allFields){
                if(TextUtils.isEmpty(edit.getText())){ 

            // EditText was empty
             ErrorFields.add(edit);//add empty Edittext only in this ArayList
            for(int i = 0; i < ErrorFields.size(); i++)
            {
                EditText currentField = ErrorFields.get(i);
                currentField.setError("this field required");
                currentField.requestFocus();
            }
            }
            }
0
taha mosaad

Sie können setOnFocusChangeListener verwenden, dies wird überprüft, wenn sich der Fokus ändert 

        txt_membername.setOnFocusChangeListener(new OnFocusChangeListener() {

        @Override
        public void onFocusChange(View arg0, boolean arg1) {
            if (arg1) {
                //do something
            } else {
                if (txt_membername.getText().toString().length() == 0) {
                    txt_membername
                            .setError("Member name is not empty, Plz!");
                }
            }
        }
    });
0
hoang lam
EditText edt=(EditText)findViewById(R.id.Edt);

String data=edt.getText().toString();

if(data=="" || data==null){

 Log.e("edit text is null?","yes");

}

else {

 Log.e("edit text is null?","no");

}

tun Sie dies für alle fünf Text bearbeiten

0
Aamirkhan

mit diesem Kurzcode können Sie Leerzeichen am Anfang und Ende der Zeichenfolge löschen. Wenn die Zeichenfolge "" die Meldung "error" zurückgibt, haben Sie eine Zeichenfolge

EditText user = findViewById(R.id.user); 
userString = user.getText().toString().trim(); 
if (userString.matches("")) {
    Toast.makeText(this, "Error", Toast.LENGTH_SHORT).show();
    return; 
}else{
     Toast.makeText(this, "Ok", Toast.LENGTH_SHORT).show();
}
0
if ( (usernameEditText.getText()+"").equals("") ) { 
    // Really just another way
}
0
Sydwell