나는 edittext와 하나의 버튼이있는 레이아웃을 가지고 있습니다. 이 버튼은 setEnabled (false)로 설정됩니다. 사용자가 edittext에서 텍스트를 쓸 때 그의 상태를 어떻게 바꿀 수 있습니까? 나는 사용자가 텍스트를 편집하기 위해 텍스트를 넣을 때 setEnabled를 true로 설정하려고할까요?editText에서 글을 쓸 때 버튼을 활성화하십시오. android
3
A
답변
6
당신은 TextWatcher
를 사용해야합니다 :
editText.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) {
// TODO Auto-generated method stub
}
});
2
그것의 좋은 아이디어를 버튼이 비활성화 된 이유 또한 사용자 을 통지 할 수 있습니다.
사용하십시오 TextWatcher
가/해제 버튼을 활성화하고 또한 글고 치기에 대한 오류 힌트 설정 : 코드 및 요구 사항과 관련하여
mEditText.addTextChangedListener(new EmptyValidator());
private class EmptyValidator implements TextWatcher {
@Override
public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
}
@Override
public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
}
@Override
public void afterTextChanged(Editable editable) {
if (editable.length() == 0) {
mEditText.setError("Required");
mButton.setEnabled(false);
} else {
mEditText.setError(null);
mButton.setEnabled(true);
}
}
}
1
를, 아래의 코드는 잘 작동합니다 :
mEditText.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) {}
@Override
public void beforeTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) {}
@Override
public void afterTextChanged(Editable string) {
if(string.length() > 0) {
mButton.setEnabled(true);
} else {
mButton.setEnabled(false);
}
}
});
1
편집 텍스 트의 현재 길이를 확인하고 TextWatcher 에서 얻은 정보를 확인해야합니다. Edi tText의 최소 길이는 1 (1) 또는 null이 아닌 다음 setEnabled (true); 그렇지 않은 경우는 false.
검사 조건 :
editText.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) {
// TODO Auto-generated method stub
if(edt.getText().toString().length()<=0)
{
edt.setError("Required.");
btn.setEnable(true);
}
else
{
btn.setEnable(true);
}
}
});
관련 문제
- 1. 권한 LOCAL_MACHINE에 글을 쓸 때
- 2. UIWebView에서 닫기 버튼을 활성화하십시오.
- 3. 버튼을 사용하여 EditText에서 텍스트 삭제
- 4. 사용자가 텍스트 상자에 글을 쓸 때 동적 텍스트 제한 (HTML)
- 5. 은 배지로 글을 쓸 수 있습니다
- 6. EditText에서 텍스트 파일에 쓰기 - android
- 7. Windows Media Player - OpenFileDialog없이 재생 버튼을 활성화하십시오
- 8. 비활성화 버튼을 활성화하십시오 html5/css/javascript
- 9. Android - requestFocus가 EditText에서 작동하지 않습니다.
- 10. tableView를 비활성화하지만 UINavigationController의 뒤로 버튼을 활성화하십시오.
- 11. 그리드 행을 기준으로 사용 안함 버튼을 활성화하십시오.
- 12. Android - EditText에서 텍스트 선택 받기
- 13. android edittext에서 chhose로 제한된 옵션
- 14. Android - EditText에서 StringArray to xml
- 15. Android : EditText에서 포커스를 고정시키는 방법?
- 16. 기본 EditText에서 스타일 변경 - Android
- 17. android, edittext에서 점선을 그리는 방법
- 18. thickbox가 닫힐 때 기능을 활성화하십시오
- 19. 시트가 열릴 때 NSWindow와 상호 작용을 활성화하십시오.
- 20. Android EditText에서 맞춤 글꼴을 사용할 때 성능을 향상시키는 방법은 무엇입니까?
- 21. Android : EditText에서 회 전자 선택 내용 표시
- 22. JavaScript를 사용하여 HTML에 글을 쓸 때의 개행 문제
- 23. Android : 사용자 정의 edittext에서 softkeaboard 트리거
- 24. 내 웹 사이트 사용자가 상자에 글을 쓸 수 있도록하려면 어떻게해야합니까?
- 25. 사용자가 친구의 담벼락에 글을 쓸 수 있는지 어떻게 확인합니까?
- 26. 하나를 선택하십시오. jcombobox를 활성화하십시오. 다른 jcombobox를 활성화하십시오.
- 27. edittext에서 jpeg 파일을 삽입하는 방법 android
- 28. EditText에서 특정 번호 만 설정 - Android
- 29. TextWatcher의 Android EditText에서 s.replace()가 작동하지 않습니다.
- 30. Android EditText에서 터키어 문자를 사용하려면 어떻게해야하나요?