2010-08-05 4 views

답변

98

표준 자바 문자열 조작을 통해이를 수행 할 수 있어야합니다. Android 또는 TextView와 관련된 사항은 없습니다. 같은

뭔가 :이 작업을 수행 할 수있는 백만 가지 방법이 아마이 있습니다

String upperString = myString.substring(0,1).toUpperCase() + myString.substring(1); 

있지만. String 설명서를 참조하십시오. 당신은 또한 (최고 IMHO)이 Apache에서 WordUtil을 가져 capitalize 같은 응용 프로그램 당신에게 유용한 방법을 많이 추가 할 수 있습니다 미래의 방문자를위한

+4

이 기능은 영어에 대해서는 좋은 해결책이지만 현지화에는 도움이되지 않습니다. –

+0

초 조금 걸렸습니다 ... 고마워, 친구 ... –

13
StringBuilder sb = new StringBuilder(name); 
sb.setCharAt(0, Character.toUpperCase(sb.charAt(0))); 
return sb.toString(); 
47
android:inputType="textCapSentences" 

또는

TV.sname.setInputType(InputType.TYPE_TEXT_FLAG_CAP_SENTENCES); 

첫 문자는 CAP입니다.

또는

compile 'org.apache.commons:commons-lang3:3.4' //in build.gradle module(app) 

tv.setText(StringUtils.capitalize(myString.toLowerCase().trim())); 
+1

이것은 많은 도움이되었습니다! –

+49

이것은 TextView에는 적용되지 않지만 EditText에만 적용됩니다. 그렇더라도 setText()로로드 된 텍스트가 아니라 키보드에서 입력 한 텍스트에 적용됩니다. 보다 구체적으로 키보드의 Caps를 켜면 사용자는 자신의 의지로이를 덮어 쓸 수 있습니다. –

4

당신은 그것을 compile 'org.apache.commons:commons-lang3:3.4'

처럼 Gradle을에 Apache Commons Lang 를 추가하고 WordUtils.capitalizeFully(name)

1

사용자 정의 텍스트 뷰를 만드십시오 사용하고 사용할 수 있습니다

public class CustomTextView extends TextView { 

    public CapitalizedTextView(Context context, AttributeSet attrs) { 
     super(context, attrs); 
    } 

    @Override 
    public void setText(CharSequence text, BufferType type) { 
     if (text.length() > 0) { 
      text = String.valueOf(text.charAt(0)).toUpperCase() + text.subSequence(1, text.length()); 
     } 
     super.setText(text, type); 
    } 
} 
2

EditText XML에이 속성을 추가하기 만하면 : android:inputType="textCapWords" 삽입 된 모든 단어의 첫 글자를 셉니다.

+0

Android Studio에서 xml 파일 미리보기에서이 기능이 작동하지 않는 이유는 무엇입니까? – toobsco42

관련 문제