Câu trả lời:
Tôi đã làm một cái gì đó như thế này một lần;
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;
}
HOẶC Theo mỗi audrius
private boolean isEmpty(EditText etText) {
return etText.getText().toString().trim().length() == 0;
}
Nếu hàm trả về false
nghĩa là edittext not empty
và return true
có nghĩa là edittext là empty
...
return etText.getText().toString().trim().length() == 0
thay vì các nhánh đúng / sai?
private Boolean isEmpty(EditText etText){return etText.Text.ToString().Trim().Length == 0;}
VS 2019
Để xác thực EditText, hãy sử dụng phương thức EditText # setError để hiển thị lỗi và để kiểm tra giá trị rỗng hoặc null, hãy sử dụng lớp Android TextUtils.isEmpty (strVar) trả về true nếu strVar có độ dài bằng 0 hoặc 0
EditText etUserName = (EditText) findViewById(R.id.txtUsername);
String strUserName = etUserName.getText().toString();
if(TextUtils.isEmpty(strUserName)) {
etUserName.setError("Your message");
return;
}
)
câu lệnh khác trong câu lệnh if.
usernameEditText
là EditText
đối tượng và bây giờ nó được đổi tên thành etUserName
.toString();
là không bắt buộc
thử cái này :
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;
}
hoặc sử dụng lớp TextUtils như thế này:
if(TextUtils.isEmpty(strUserName)) {
Toast.makeText(this, "plz enter your name ", Toast.LENGTH_SHORT).show();
return;
}
Đến bữa tiệc muộn ở đây, nhưng tôi chỉ cần thêm TextUtils.isEmpty của riêng Android (CharSequence str)
Trả về true nếu chuỗi là null hoặc có độ dài 0
Vì vậy, nếu bạn đặt năm EditTexts của mình vào một danh sách, mã đầy đủ sẽ là:
for(EditText edit : editTextList){
if(TextUtils.isEmpty(edit.getText()){
// EditText was empty
// Do something fancy
}
}
isEmpty()
mất một CharSequence
, mà Editable
kéo dài, vì vậy không cần phải gọi .toString()
nó.
Các câu trả lời khác là đúng nhưng làm theo cách ngắn gọn như
if(editText.getText().toString().isEmpty()) {
// editText is empty
} else {
// editText is not empty
}
Thử cái này
TextUtils.isEmpty(editText.getText());
Tại sao không tắt nút nếu EditText trống? IMHO Điều này có vẻ chuyên nghiệp hơn:
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) {
}
});
Tôi thường làm những gì SBJ đề xuất, nhưng ngược lại. Tôi chỉ đơn giản thấy dễ hiểu mã của mình hơn bằng cách kiểm tra kết quả dương tính thay vì phủ định kép. Bạn có thể yêu cầu làm thế nào để kiểm tra EdiTexts trống, nhưng điều bạn thực sự muốn biết là nó có bất kỳ nội dung nào không và nó không trống.
Thích như vậy:
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;
}
Vì SBJ, tôi thích trả về "không có nội dung" (hoặc false
) như mặc định để tránh các trường hợp ngoại lệ vì tôi đã kiểm tra nội dung của mình. Bằng cách đó, bạn sẽ hoàn toàn chắc chắn rằng a true
đã được "phê duyệt" bởi séc của bạn.
Tôi cũng nghĩ rằng cách if
gọi nó trông cũng sạch sẽ hơn một chút:
if (hasContent(myEditText)) {
// Act upon content
} else {
// Got no content!
}
Nó phụ thuộc rất nhiều vào sở thích, nhưng tôi thấy điều này dễ đọc hơn. :)
Tôi sử dụng phương pháp này, sử dụng trim()
để tránh các khoảng trắng:
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;
}
một ví dụ nếu bạn có một số Chỉnh sửa dữ liệu
if (("".equals(edtUser.getText().toString().trim()) || "".equals(edtPassword.getText().toString().trim()))){
Toast.makeText(this, "a value is missing!", Toast.LENGTH_LONG).show();
return;
}
Bạn cũng có thể kiểm tra tất cả các Chuỗi Chỉnh sửa trong một Nếu điều kiện: như thế này
if (mString.matches("") || fString.matches("") || gender==null || docString.matches("") || dString.matches("")) {
Toast.makeText(WriteActivity.this,"Data Incomplete", Toast.LENGTH_SHORT).show();
}
Tôi muốn làm một cái gì đó tương tự. Nhưng nhận được giá trị văn bản từ văn bản chỉnh sửa và so sánh nó như (str=="")
không làm việc cho tôi. Vì vậy, lựa chọn tốt hơn là:
EditText eText = (EditText) findViewById(R.id.etext);
if (etext.getText().length() == 0)
{//do what you want }
Làm việc như người ở.
Hãy thử điều này với việc sử dụng If ELSE If điều kiện. Bạn có thể xác nhận các trường editText của bạn một cách dễ dàng.
if(TextUtils.isEmpty(username)) {
userNameView.setError("User Name Is Essential");
return;
} else if(TextUtils.isEmpty(phone)) {
phoneView.setError("Please Enter Your Phone Number");
return;
}
"kiểm tra này tôi chắc chắn bạn sẽ thích nó."
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);
}
}
});
sử dụng TextUtils.isEmpty("Text here");
cho mã dòng đơn
với mã ngắn này, bạn có thể xóa khoảng trống ở đầu và cuối chuỗi. Nếu chuỗi là "" trả lại thông báo "lỗi" thì bạn đã tạo chuỗi
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();
}
Bạn có thể sử dụng setOnFocusChangeListener
, nó sẽ kiểm tra khi thay đổi tiêu cự
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!");
}
}
}
});
Tôi thích sử dụng ràng buộc danh sách ButterKnife và sau đó áp dụng các hành động trong danh sách. Ví dụ: với trường hợp EditTexts, tôi có các hành động tùy chỉnh sau được xác định trong một lớp tiện ích (trong trường hợp này 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());
}
};
Và trong mã xem, tôi liên kết EditTexts vào một danh sách và áp dụng các hành động khi tôi cần kiểm tra các khung nhìn.
@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();
}
Và tất nhiên mẫu này có thể mở rộng để kiểm tra bất kỳ thuộc tính nào trên bất kỳ số lượt xem nào. Nhược điểm duy nhất, nếu bạn có thể gọi nó là, sự dư thừa của lượt xem. Có nghĩa là, để sử dụng các EditTexts đó, bạn cũng sẽ phải liên kết chúng với các biến đơn để bạn có thể tham chiếu chúng theo tên hoặc bạn sẽ phải tham chiếu chúng theo vị trí trong danh sách ( edits.get(0)
, v.v.). Cá nhân, tôi chỉ liên kết mỗi trong số chúng hai lần, một lần vào một biến duy nhất và một lần vào danh sách và sử dụng tùy theo mục nào.
Hãy thử điều này: nó ở 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()
}
}
Cảm ơn bạn
Các công việc sau đây cho tôi tất cả trong một tuyên bố:
if(searchText.getText().toString().equals(""))
Log.d("MY_LOG", "Empty");
Đầu tiên tôi lấy một văn bản từ EditText
và sau đó chuyển đổi nó thành một chuỗi và cuối cùng so sánh nó với ""
việc sử dụng .equals
phương thức.
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();
}
}
}