Проверьте, пуст ли EditText.

У меня есть 5 EditTexts в андроиде для ввода пользователей. Я хотел бы знать, могу ли я иметь метод проверки всех 5 EditTexts, если они являются нулевыми. Есть какой-либо способ сделать это??

Ответ 1

Я однажды сделал что-то подобное:

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;
}

Ответ 2

private boolean isEmpty(EditText etText) {
    if (etText.getText().toString().trim().length() > 0) 
        return false;

    return true;
}

ИЛИ Как в audrius

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

Если функция return false означает, что edittext это not empty, а return true означает, что edittext empty...

Ответ 3

Для проверки EditText используйте метод EditText # setError для отображения ошибки и для проверки пустого или нулевого значения используйте встроенный класс андроида TextUtils.isEmpty(strVar), которые возвращают true, если strVar имеет нулевую или нулевую длину

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

Ответ 4

попробуйте следующее:

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;
}

или используйте класс TextUtils следующим образом:

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

Ответ 5

Наполеон поздно, но мне просто нужно добавить Android TextUtils.isEmpty(CharSequence str)

Возвращает true, если строка имеет значение null или 0-length

Итак, если вы поместите пять переменных EditTexts в список, полный код будет выглядеть следующим образом:

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

Ответ 6

Другие ответы верны, но делайте это в кратчайшие сроки, например

if(editText.getText().toString().isEmpty()) {
     // editText is empty
} else {
     // editText is not empty
}

Ответ 7

Вы можете использовать length() из EditText.

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

Ответ 8

Я обычно делаю то, что SBJ предлагает, но наоборот. Мне просто легче понять мой код, проверяя положительные результаты вместо двойных негативов. Возможно, вы спрашиваете, как проверить наличие пустых EdiTexts, но то, что вы действительно хотите знать, - это если у него есть контент, а не то, что он не пуст.

Так же:

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;
}

Как SBJ Я предпочитаю возвращать "без содержимого" (или false) по умолчанию, чтобы избежать исключений, потому что я укрепил мою проверку содержимого. Таким образом, вы будете абсолютно уверены, что true был "одобрен" вашими чеками.

Я также думаю, что вызов if выглядит немного чище:

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

Это очень зависит от предпочтения, но я считаю, что это легче читать.:)

Ответ 9

Я использую этот метод, который использует trim(), чтобы избежать пробелов:

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;
}

пример, если у вас есть несколько EditText'ов

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

Ответ 10

private boolean hasContent(EditText et) {
       return (et.getText().toString().trim().length() > 0);
}

Ответ 11

Почему бы просто отключить кнопку, если EditText пуст? ИМХО Это выглядит более профессионально:

        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) {

        }
       });

Ответ 12

Вы также можете проверить все строки EditText в одном условии If: like this

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

Ответ 13

TextUtils.isEmpty(editText.getText());

Ответ 14

Я использовал TextUtils для этого:

if (TextUtils.isEmpty(UsernameInfo.getText())) {
    validationError = true;
    validationErrorMessage.append(getResources().getString(R.string.error_blank_username));
}

Ответ 15

Я хотел сделать что-то подобное. Но получение текстового значения из текста редактирования и сравнение его, как (str==""), не работало для меня. Таким образом, лучший вариант:

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

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

Работал как шарм.

Ответ 16

if(TextUtils.isEmpty(textA.getText())){
            showToast(it Null");
        }

вы можете использовать TextUtils.isEmpty, как мой пример! Удачи.

Ответ 17

EditText txtUserID = (EditText) findViewById(R.id.txtUserID);

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

if (UserID.equals("")) 

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

Вы увидите сообщение в LogCat....

Ответ 18

В editText пусто пустить другой этот простой способ:

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

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

Ответ 19

Попробуйте использовать это, используя ELSE Если условия. Вы можете легко проверить свои поля editText.

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

Ответ 20

Вы можете вызвать эту функцию для каждого из текстов редактирования:

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

Ответ 21

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");

}

сделать это для всех пяти текстовых текстов

Ответ 22

"проверьте это, я уверен, вам понравится".

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);
        }
    }
});

Ответ 23

Вы можете использовать setOnFocusChangeListener, он будет проверять, когда смена фокуса

        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!");
                }
            }
        }
    });

Ответ 24

использовать TextUtils.isEmpty("Text here"); для кода с одной строкой

Ответ 25

if ( (usernameEditText.getText()+"").equals("") ) { 
    // Really just another way
}

Ответ 26

Я предпочитаю использовать ButterKnife привязку списка, а затем применить действия в списке. Например, в случае с EditTexts у меня есть следующие пользовательские действия, определенные в классе утилиты (в данном случае 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());
    }
};

И в коде просмотра я привязываю EditTexts к списку и применяю действия, когда мне нужно проверять представления.

@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();
}

И, конечно, эта модель расширяется для проверки любого свойства на любом количестве просмотров. Единственным недостатком, если можно так выразиться, является избыточность представлений. Для использования этих EditTexts вам придется привязывать их к одиночным переменным, чтобы вы могли ссылаться на них по имени, или вам нужно будет ссылаться на них по позиции в списке (edits.get(0) и т.д.). Лично я просто связываю каждый из них дважды, один раз с одной переменной и один раз в список и использую то, что подходит.