Відповіді:
Я робив щось подібне колись;
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;
}
private boolean isEmpty(EditText etText) {
if (etText.getText().toString().trim().length() > 0)
return false;
return true;
}
АБО Як за аудирією
private boolean isEmpty(EditText etText) {
return etText.getText().toString().trim().length() == 0;
}
Якщо функція return false
означає, що edittext є, not empty
а return true
означає, що edittext є empty
...
return etText.getText().toString().trim().length() == 0
замість справжніх / хибних гілок?
private Boolean isEmpty(EditText etText){return etText.Text.ToString().Trim().Length == 0;}
VS 2019
Для перевірки EditText використовуйте метод EditText # setError для помилки показу та для перевірки порожнього або нульового значення використовуйте вбудований андроїд-клас TextUtils.isEmpty (strVar), який повертає істину, якщо strVar дорівнює нулю або нульовій довжині
EditText etUserName = (EditText) findViewById(R.id.txtUsername);
String strUserName = etUserName.getText().toString();
if(TextUtils.isEmpty(strUserName)) {
etUserName.setError("Your message");
return;
}
)
в операторі if.
usernameEditText
є EditText
об'єктом, і тепер її перейменовано на etUserName
.toString();
не потрібно
спробуйте це :
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;
}
Запізнився на вечірку тут, але мені просто потрібно додати Android власний TextUtils.isEmpty (вул. CharSequence)
Повертає true, якщо рядок є нульовим або 0-довжиною
Отже, якщо ви помістите п'ять EditTexts у список, повний код буде таким:
for(EditText edit : editTextList){
if(TextUtils.isEmpty(edit.getText()){
// EditText was empty
// Do something fancy
}
}
isEmpty()
бере а CharSequence
, який Editable
розширюється, тому не потрібно дзвонити .toString()
на нього.
Інші відповіді правильні, але робити це коротко, як
if(editText.getText().toString().isEmpty()) {
// editText is empty
} else {
// editText is not empty
}
Спробуйте це
TextUtils.isEmpty(editText.getText());
Чому б просто не відключити кнопку, якщо EditText порожній? IMHO Це виглядає більш професійно:
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) {
}
});
Ви можете використовувати length()
з EditText
.
public boolean isEditTextEmpty(EditText mInput){
return mInput.length() == 0;
}
Я зазвичай роблю те, що пропонує 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!
}
Це дуже залежить від уподобань, але мені це легше читати. :)
Я використовую цей метод, який використовує 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;
}
Ви також можете перевірити всі рядки EditText в одній умові If: наприклад
if (mString.matches("") || fString.matches("") || gender==null || docString.matches("") || dString.matches("")) {
Toast.makeText(WriteActivity.this,"Data Incomplete", Toast.LENGTH_SHORT).show();
}
Я хотів зробити щось подібне. Але отримати значення тексту за допомогою редагування тексту та порівняти його, мов, (str=="")
не працювало для мене. Тож кращим варіантом було:
EditText eText = (EditText) findViewById(R.id.etext);
if (etext.getText().length() == 0)
{//do what you want }
Працював як шарм.
Спробуйте це, використовуючи If ELSE If умови. Ви можете легко перевірити свої поля 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;
}
"перевірити це, впевнено, що вам сподобається.
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);
}
}
});
використовувати TextUtils.isEmpty("Text here");
для єдиного рядкового коду
за допомогою цього короткого коду ви можете видалити порожній пробіл на початку та в кінці рядка. Якщо рядок є "", поверніть повідомлення "помилка", інакше ви накладете рядок
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();
}
Ви можете використовувати 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!");
}
}
}
});
Я вважаю за краще використовувати прив'язку списку 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)
тощо). Особисто я просто пов'язую кожен з них двічі, один раз до однієї змінної та один раз до списку і використовую те, що підходить.
Спробуйте це: його в Котліні
//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()
}
}
Дякую
У одному твердженні для мене працюють наступні:
if(searchText.getText().toString().equals(""))
Log.d("MY_LOG", "Empty");
Спочатку я витягую текст із, EditText
а потім перетворюю його в рядок і, нарешті, порівнюю його з ""
використанням .equals
методу.
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();
}
}
}