2017-07-25 31 views
-2

我已經創建了一個名稱,年齡,性別和薪水的註冊表單。現在我正在嘗試對所有字段進行驗證。 我想出了很多使用Text Watcher和Awesome Validation,Android-Validator Library等驗證庫驗證的例子。 我有點困惑,我需要知道使用哪一個?爲什麼? 有一點解釋會有幫助。通過TextWatcher或AwesomeValidation庫驗證EditText

回答

1

您可以創建驗證按照您的要求,我認爲如果它不是好主意,用validation libraries

你可以申請驗證你的表單控件這樣

EditText editText = .findViewById(R.id.btn_FBShare); 
    Button button = (Button) findViewById(R.id.btn_FBShare); 
    //set validation on button click like this 
    button.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      if (editText.getText().toString().isEmpty()) { 
       editText.setError("enetr user name"); 
       Toast.makeText(getActivity(), "Please enetr user name", Toast.LENGTH_SHORT).show(); 
      }else { 
       Toast.makeText(getContext(), "Valid Data", Toast.LENGTH_SHORT).show(); 
      } 

      if(editText.getText().toString().length()<10){ 
       editText.setError("less than 10 charecter"); 
       Toast.makeText(getActivity(), "Please entermore than 10 charecter", Toast.LENGTH_SHORT).show(); 
      } 
     } 
    }); 

讓我現在有任何疑問

+0

做我需要使用addTextChangeListener()方法來檢查其他約束像最大長度,或MINLENGTH只使用if..else語句 –

+0

使用addTextChangeListener()方法,我得到的應用程序沒有響應對話框和模擬器後減慢 –

+0

等待我更新我的回答 –

0

試試這個

String Name = editTextField.getText().toString().trim(); 
if (TextUtils.isEmpty(Name)) { 
      lName.setError("Please enter name"); 
      return; 
     } 
0

爲什麼你需要使用驗證庫?表單驗證總是取決於業務邏輯。

0

如果您想要,可以使用TextWatcher進行實時驗證:

editTextField.addTextChangedListener(new TextWatcher() { 
     @Override 
     public void onTextChanged(CharSequence s, int start, int before, int count) { 

      // TODO Auto-generated method stub 
     } 

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

      // TODO Auto-generated method stub 
     } 

     @Override 
     public void afterTextChanged(Editable s) { 

      validate(s.toString()); 
     } 
    }); 

如果要在單擊按鈕或類似用途之後驗證表單,請選擇Nileshs答案!

+0

,我們將如何避免在運行應用程序時立即出現的錯誤消息。 –

+0

你的意思是哪個錯誤信息? – juls

+0

edittext.setError(「請輸入名稱」); –