EditText가 대문자로 텍스트를 시작하도록 강제하는 방법은 무엇입니까?
나는이 EditText
내가 (사용자 유형에)가 대문자로 시작하는 그 텍스트를해야합니다.
당신이 모두를 추가 할 경우주의해야 android:capitalize="sentences"
하고 android:inputType="text"
, 후자는, 제 1 및 입력이 대문자로하지 않습니다 우선 순위를 가지고 보인다.
inputType
첫 글자를 자동으로 대문자로 바꾸는 구체적인 방법이 있습니다 .
android:inputType="textCapSentences"
http://developer.android.com/reference/android/widget/TextView.html#attr_android:inputType을 참조하세요.
android : capitalize 옵션은 다음 과 같습니다.
android:capitalize="none", which won't automatically capitalize anything.
android:capitalize="sentences", Which will capitalize the first word of each sentence.
android:capitalize="words", Which Will Capitalize The First Letter Of Every Word.
android:capitalize="characters", WHICH WILL CAPITALIZE EVERY CHARACTER.
분명히 그것은 inputType
대신에 변경되었습니다capitalize
사용하다
android:inputType="textPersonName|textCapWords"
만 사용하는 것만으로 "textPersonName"
는 충분하지 않으므로 이름의 첫 글자는 대문자로 표시됩니다.
우편 주소와 마찬가지로 :
android:inputType="textPostalAddress|textCapSentences"
이것을 당신의 XML
android:inputType="textCapWords"
android:inputType="textCapSentences"
문장에서 작동합니다. 그러나 전체 이름 필드의 모든 단어를 대문자로 표기해야했습니다.
이렇게 해봐
testEditText.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_FLAG_CAP_WORDS);
또는 android:inputType="textCapSentences"
장치 키보드 자동 대문자 설정이 활성화 된 경우에만 작동합니다 .
레이아웃 xml에서 android:inputType=textCapSentences
레이아웃 xml에서 android:capitalize="sentences"
"시행"이라는 단어를 사용하셨습니다. 그래서 이것을 시도하십시오. 편집 텍스트를 인수로 전달하십시오.
public static void setCapitalizeTextWatcher(final EditText editText) {
final TextWatcher textWatcher = new TextWatcher() {
int mStart = 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) {
mStart = start + count;
}
@Override
public void afterTextChanged(Editable s) {
String input = s.toString();
String capitalizedText;
if (input.length() < 1)
capitalizedText = input;
else
capitalizedText = input.substring(0, 1).toUpperCase() + input.substring(1);
if (!capitalizedText.equals(editText.getText().toString())) {
editText.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
@Override
public void afterTextChanged(Editable s) {
editText.setSelection(mStart);
editText.removeTextChangedListener(this);
}
});
editText.setText(capitalizedText);
}
}
};
editText.addTextChangedListener(textWatcher);
}
대문자로 시작하는 비밀번호의 경우 :
android:inputType="textPassword|textCapSentences"
이것을 edittext (xml)에 붙여 넣으십시오.
android:capitalize="sentences"
edittext.setFilters(new InputFilter[] {new InputFilter.AllCaps()});
android : inputType = textCapSentences 설정의 성가신 경우가 발생한 경우 한 줄짜리 EditText로 끝나는 경우 해결책은 다음과 같습니다.
android:inputType="textCapSentences|textMultiLine"
참고 URL : https://stackoverflow.com/questions/7386291/how-to-force-edittext-to-start-text-with-capital-letter
'Program Tip' 카테고리의 다른 글
여러 열을 기반으로 중복 레코드를 제거 하시겠습니까? (0) | 2020.10.25 |
---|---|
속성 이름을 문자열로 사용하여 속성별로 정렬하는 코드 (0) | 2020.10.25 |
핀치를 감지하는 가장 간단한 방법 (0) | 2020.10.25 |
Makefile-구분 기호 누락 (0) | 2020.10.25 |
텍스트 파일에서 n 번째 열 가져 오기 (0) | 2020.10.25 |