Jawaban:
Saya melakukan sesuatu seperti ini sekali;
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;
}
ATAU Per Audrius
private boolean isEmpty(EditText etText) {
return etText.getText().toString().trim().length() == 0;
}
Jika fungsi kembali false
berarti edittext adalah not empty
dan kembali true
berarti edittext adalah empty
...
return etText.getText().toString().trim().length() == 0
bukan cabang benar / salah?
private Boolean isEmpty(EditText etText){return etText.Text.ToString().Trim().Length == 0;}
VS 2019
Untuk memvalidasi EditText gunakan metode EditText # setError untuk kesalahan tampilan dan untuk memeriksa nilai kosong atau null gunakan kelas android inbuilt TextUtils.isEmpty (strVar) yang mengembalikan true jika strVar adalah nol atau panjang nol
EditText etUserName = (EditText) findViewById(R.id.txtUsername);
String strUserName = etUserName.getText().toString();
if(TextUtils.isEmpty(strUserName)) {
etUserName.setError("Your message");
return;
}
)
dalam pernyataan if.
usernameEditText
adalah EditText
objek dan sekarang berganti nama menjadi etUserName
.toString();
tidak diperlukan
coba ini :
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;
}
atau gunakan kelas TextUtils seperti ini:
if(TextUtils.isEmpty(strUserName)) {
Toast.makeText(this, "plz enter your name ", Toast.LENGTH_SHORT).show();
return;
}
Jauh terlambat ke pesta di sini, tapi saya hanya perlu menambahkan TextUtils.isEmpty Android sendiri (CharSequence str)
Mengembalikan nilai true jika string adalah nol atau panjang 0
Jadi, jika Anda memasukkan lima EditText Anda dalam daftar, kode lengkapnya adalah:
for(EditText edit : editTextList){
if(TextUtils.isEmpty(edit.getText()){
// EditText was empty
// Do something fancy
}
}
isEmpty()
Dibutuhkan CharSequence
, yang Editable
meluas, sehingga tidak perlu untuk memanggil .toString()
di atasnya.
Jawaban lain benar tetapi lakukan dengan cara yang singkat seperti
if(editText.getText().toString().isEmpty()) {
// editText is empty
} else {
// editText is not empty
}
Coba ini
TextUtils.isEmpty(editText.getText());
Mengapa tidak menonaktifkan saja tombol jika EditText kosong? IMHO Ini terlihat lebih profesional:
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) {
}
});
Anda dapat menggunakan length()
dari EditText
.
public boolean isEditTextEmpty(EditText mInput){
return mInput.length() == 0;
}
Saya biasanya melakukan apa yang SBJ usulkan, tetapi sebaliknya. Saya merasa lebih mudah untuk memahami kode saya dengan memeriksa hasil positif daripada negatif ganda. Anda mungkin bertanya bagaimana cara memeriksa EdiTexts yang kosong, tetapi yang Anda benar-benar ingin tahu adalah apakah ia memiliki konten dan bukan karena itu tidak kosong.
Seperti itu:
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;
}
Sebagai SBJ saya lebih suka untuk kembali "tidak memiliki konten" (atau false
) sebagai default untuk menghindari pengecualian karena saya borked cek konten saya. Dengan begitu Anda akan benar-benar yakin bahwa a true
telah "disetujui" oleh cek Anda.
Saya juga berpikir if
panggilannya terlihat sedikit lebih bersih juga:
if (hasContent(myEditText)) {
// Act upon content
} else {
// Got no content!
}
Ini sangat tergantung pada preferensi, tetapi saya menemukan ini lebih mudah dibaca. :)
Saya menggunakan metode ini, yang digunakan trim()
untuk menghindari ruang kosong:
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;
}
contoh jika Anda memiliki beberapa EditText
if (("".equals(edtUser.getText().toString().trim()) || "".equals(edtPassword.getText().toString().trim()))){
Toast.makeText(this, "a value is missing!", Toast.LENGTH_LONG).show();
return;
}
Anda juga dapat memeriksa semua String EditTeks dalam satu kondisi If: seperti ini
if (mString.matches("") || fString.matches("") || gender==null || docString.matches("") || dString.matches("")) {
Toast.makeText(WriteActivity.this,"Data Incomplete", Toast.LENGTH_SHORT).show();
}
Saya ingin melakukan hal serupa. Tetapi mendapatkan nilai teks dari mengedit teks dan membandingkannya seperti (str=="")
tidak berfungsi untuk saya. Jadi pilihan yang lebih baik adalah:
EditText eText = (EditText) findViewById(R.id.etext);
if (etext.getText().length() == 0)
{//do what you want }
Bekerja seperti pesona.
Coba ini dengan menggunakan kondisi If ELSE If. Anda dapat memvalidasi bidang editText Anda dengan mudah.
if(TextUtils.isEmpty(username)) {
userNameView.setError("User Name Is Essential");
return;
} else if(TextUtils.isEmpty(phone)) {
phoneView.setError("Please Enter Your Phone Number");
return;
}
"Lihat ini, aku yakin kamu akan menyukainya."
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);
}
}
});
gunakan TextUtils.isEmpty("Text here");
untuk kode baris tunggal
dengan kode pendek ini Anda dapat menghapus ruang kosong di awal dan akhir string. Jika string adalah "" kembalikan pesan "kesalahan" kalau tidak Anda punya string
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();
}
Anda dapat menggunakannya setOnFocusChangeListener
, itu akan memeriksa kapan fokus berubah
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!");
}
}
}
});
Saya lebih suka menggunakan pengikatan daftar ButterKnife dan kemudian menerapkan tindakan pada daftar. Misalnya, dengan case EditTexts, saya memiliki tindakan kustom berikut yang didefinisikan dalam kelas utilitas (dalam hal ini 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());
}
};
Dan dalam kode tampilan, saya mengikat EditText ke daftar dan menerapkan tindakan ketika saya perlu memeriksa tampilan.
@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();
}
Dan tentu saja pola ini dapat diperluas untuk memeriksa properti apa pun pada sejumlah tampilan. Satu-satunya downside, jika Anda bisa menyebutnya begitu, adalah redundansi pandangan. Berarti, untuk menggunakan EditText tersebut, Anda harus mengikatnya ke variabel tunggal juga sehingga Anda dapat merujuknya dengan nama atau Anda harus merujuknya dengan posisi di daftar ( edits.get(0)
, dll.). Secara pribadi, saya hanya mengikat masing-masing dua kali, sekali ke variabel tunggal dan sekali ke daftar dan menggunakan mana yang sesuai.
Coba ini: ini ada di 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()
}
}
Terima kasih
Berikut ini bekerja untuk saya semua dalam satu pernyataan:
if(searchText.getText().toString().equals(""))
Log.d("MY_LOG", "Empty");
Pertama saya mengambil teks dari EditText
dan kemudian mengubahnya menjadi string dan akhirnya membandingkannya dengan ""
menggunakan .equals
metode.
checkempForm void pribadi () {
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();
}
}
}