EditText가 비어 있는지 확인하십시오. [닫은]
EditTexts
사용자가 입력 할 수있는 안드로이드 5 가 있습니다. 5 EditTexts
가 모두 null인지 확인하는 방법이 있는지 알고 싶습니다 . 이것을 할 수있는 방법이 있습니까 ??
나는 이런 일을 한 번했다;
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;
}
또는 audrius에 의하여
private boolean isEmpty(EditText etText) {
return etText.getText().toString().trim().length() == 0;
}
함수 반환 false
은 edittext가 not empty
있고 return true
은 edittext가 empty
...을 의미 하는 경우
EditText를 유효성 검사하려면 ShowText 및 Edit Error # setError 메서드를 사용하고 show error 및 비어 있거나 null 값을 확인하려면 내장 안드로이드 클래스 TextUtils.isEmpty (strVar) 를 사용하십시오. strVar가 null이거나 길이가 0이면 true를 반환합니다.
EditText etUserName = (EditText) findViewById(R.id.txtUsername);
String strUserName = etUserName.getText().toString();
if(TextUtils.isEmpty(strUserName)) {
etUserName.setError("Your message");
return;
}
이 시도 :
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;
}
파티에 늦었지만 안드로이드 자체 TextUtils.isEmpty (CharSequence str) 를 추가해야합니다.
문자열이 null이거나 길이가 0이면 true를 반환합니다.
따라서 다섯 개의 EditText를 목록에 넣으면 전체 코드는 다음과 같습니다.
for(EditText edit : editTextList){
if(TextUtils.isEmpty(edit.getText()){
// EditText was empty
// Do something fancy
}
}
다른 답변은 정확하지만 짧은 방법으로 수행하십시오.
if(editText.getText().toString().isEmpty()) {
// editText is empty
} else {
// editText is not empty
}
이 시도
TextUtils.isEmpty(editText.getText());
length()
에서 사용할 수 있습니다 EditText
.
public boolean isEditTextEmpty(EditText mInput){
return mInput.length() == 0;
}
나는 보통 SBJ가 제안한 것을하지만 다른 방법으로한다. 이중 부정 대신 긍정적 결과를 확인하여 코드를 이해하는 것이 더 쉽다는 것을 알게되었습니다. 빈 EdiText를 확인하는 방법을 요구할 수도 있지만 실제로 알고 싶은 것은 내용이 있고 비어 있지 않은지 여부입니다.
이렇게 :
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!
}
환경 설정에 크게 의존하지만 읽기가 더 쉽습니다. :)
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) {
}
});
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;
}
if(TextUtils.isEmpty(textA.getText())){
showToast(it's Null");
}
내 예제처럼 TextUtils.isEmpty를 사용할 수 있습니다! 행운을 빕니다
private boolean hasContent(EditText et) {
return (et.getText().toString().trim().length() > 0);
}
나는 TextUtils
이것을 위해 사용 했다 :
if (TextUtils.isEmpty(UsernameInfo.getText())) {
validationError = true;
validationErrorMessage.append(getResources().getString(R.string.error_blank_username));
}
하나의 If 조건에서 모든 EditText 문자열을 확인할 수도 있습니다.
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;
}
각 편집 텍스트에 대해이 함수를 호출 할 수 있습니다.
public boolean isEmpty(EditText editText) {
boolean isEmptyResult = false;
if (editText.getText().length() == 0) {
isEmptyResult = true;
}
return isEmptyResult;
}
EditText txtUserID = (EditText) findViewById(R.id.txtUserID);
String UserID = txtUserID.getText().toString();
if (UserID.equals(""))
{
Log.d("value","null");
}
LogCat에 메시지가 표시됩니다 ....
"이것이 마음에 드는지 확인하십시오."
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");
단 한 줄의 코드
이 짧은 코드를 사용하면 문자열의 시작과 끝에서 빈 공간을 삭제할 수 있습니다. 문자열이 ""이면 "error"메시지를 반환하고 그렇지 않으면 문자열을
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();
}
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");
}
다섯 편집 텍스트 모두에 대해 이렇게하십시오
사용 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!");
}
}
}
});
if ( (usernameEditText.getText()+"").equals("") ) {
// Really just another way
}
I prefer using ButterKnife list binding and then applying actions on the list. For example, with the case of EditTexts, I have the following custom actions defined in a utility class (in this case 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());
}
};
And in the view code, I bind the EditTexts to a list and apply the actions when I need to check the views.
@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();
}
And of course this pattern is extendable to checking any property on any number of views. The only downside, if you can call it that, is the redundancy of views. Meaning, to use those EditTexts, you would have to bind them to single variables as well so that you can reference them by name or you would have to reference them by position in the list (edits.get(0)
, etc.). Personally, I just bind each of them twice, once to a single variable and once to a the list and use whichever is appropriate.
text를 비우려면 다음과 같이 간단한 방법으로 시도하십시오.
String star = editText.getText().toString();
if (star.equalsIgnoreCase("")) {
Toast.makeText(getApplicationContext(), "Please Set start no", Toast.LENGTH_LONG).show();
}
이것을 시도하십시오 : 그것의 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()
}
}
감사합니다
다음은 하나의 진술로 모두 나를 위해 작동합니다.
if(searchText.getText().toString().equals(""))
Log.d("MY_LOG", "Empty");
먼저에서 텍스트를 검색 한 EditText
다음 문자열로 변환하고 마지막으로 메소드 를 ""
사용하여 비교합니다 .equals
.
이 기능은 나를 위해 작동
비공개 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();
}
}
}
참고 URL : https://stackoverflow.com/questions/6290531/check-if-edittext-is-empty
'Programming' 카테고리의 다른 글
Angular 2 Typescript 앱에서 moment.js 라이브러리를 사용하는 방법은 무엇입니까? (0) | 2020.05.06 |
---|---|
단위 테스트 안티 패턴 카탈로그 (0) | 2020.05.06 |
numpy : 배열에서 고유 한 값에 대한 가장 효율적인 빈도 수 (0) | 2020.05.06 |
socket.io에 대한 초보자 초보자 자습서? (0) | 2020.05.06 |
Git에서 되 돌린 병합 다시 실행 (0) | 2020.05.06 |