내 양식의 키보드를 통해 대문자 타이핑을 제한하고 싶습니다.대문자 입력을 프로그래밍 방식으로 제한하려면 어떻게해야합니까?
어떤 가이드 나 어떻게 이것을 달성하기 위해? 소스 코드에서
내 양식의 키보드를 통해 대문자 타이핑을 제한하고 싶습니다.대문자 입력을 프로그래밍 방식으로 제한하려면 어떻게해야합니까?
어떤 가이드 나 어떻게 이것을 달성하기 위해? 소스 코드에서
첫째, 목표는 무엇입니까? 왜 대문자를 제한하고 싶습니까? 당신은 onTextChanged(CharSequence text, int start, int before, int after)를 무시하고 무엇을하려고 내가 생각할 수있는 유일한 방법은 사용자 입력의 유효성에 그들을 돌봐 당신이 대문자를 제한해야하는 경우 와 toLowerCase()
를 사용할 수 없습니다 그 안에 들어가기를 원해. 나는 그것을 테스트하지 않았지만 효과가있을 수 있습니다.
업데이트 : radek 언급 InputFilter. 그 해결책은 제 것보다 깨끗해 보입니다. 그러나 저는 그것들을 사용한 적이 없습니다.
입력 필터를 편집 가능 파일에 첨부하여 변경 사항을 적용 할 수 있습니다.
: InputFilter.AllCaps : 그것은의 안드로이드 소스를 기반으로
InputFilter smallFilter = new InputFilter() {
@Override
public CharSequence filter(CharSequence source, int start, int end,
Spanned dest, int dstart, int dend) {
for (int i = start; i < end; i++) {
if (Character.isUpperCase(source.charAt(i))) {
char[] v = new char[end - start];
TextUtils.getChars(source, start, end, v, 0);
String s = new String(v).toLowerCase();
if (source instanceof Spanned) {
SpannableString sp = new SpannableString(s);
TextUtils
.copySpansFrom((Spanned) source, start, end, null, sp, 0);
return sp;
} else {
return s;
}
}
}
return null;
}
};
EditText vText = ...;
vText.setFilters(new InputFilter[]{smallFilter});
. 테스트를 거쳐 작동합니다.
그가하려는 일에 대한 inputFilter 또는 InputType (http://developer.android.com/reference/android/text/InputType.html)은 없습니다. – Macarse
thats 좋은 생각 : D – UMAR
내 답변을 선택해 주셔서 감사합니다.하지만 radek-k 's가 더 좋습니다. 어쨌든, 우리 모두 오늘 무언가를 배웠습니다. ^^ – Maragues