2011-09-27 8 views
7

나는 TextView를 가지고 있습니다. 나는 모든 단어의 첫 글자를 대문자로 만들려고 노력하고있다.android : 대문자 작동하지 않음

TextView titleView = (TextView) findViewById(R.id.textView1); 
    titleView.setText(section.replace("_", " ")); 

내가 동적 텍스트를 추가하고 단어를 대문자로 예상 할 수 없습니다 : 여기

<TextView 
      android:text="TextView" 
      android:id="@+id/textView1" 
      android:layout_height="wrap_content" 
      android:layout_width="wrap_content" 
      android:layout_alignParentRight="true" 
      android:textSize="30dip" 
      android:textStyle="bold" 
      android:layout_marginRight="5dip" 
      android:ellipsize="end" 
      android:capitalize="words"> 
     </TextView> 

내가 텍스트를 추가 해요 방법은 다음과 같습니다 여기

는 텍스트 뷰입니까? 다른 특성이 android:capitalize을 방해합니까? android:capitalize이 고장 났습니까?

답장을 보내 주셔서 감사합니다.

답변

13

capitalize은 XML로 설정할 수있는 기본적으로는 KeyListener이므로 사용자가 입력 한 텍스트에만 적용됩니다. As the documentation states (강조 광산)

설정된 경우,이 텍스트 뷰가 텍스트 입력 방법을 가지고 자동 어떤 사용자 유형을 활용해야 함을 지정.

how to capitalize the first letter of every word in Java에 관련 질문이 있습니다. 유용한 질문이 있습니다.

+0

와우, 거의 정확히 같은 대답은 ... –

+0

고마워, 나는 정답으로 표시했다. – emachine

1

이 늦은 대답하지만 난 사람을 도움이 될 생각 ...

당신은 자바 코드에서 동적 텍스트를 capitilizing 편안 경우

는 다음을 사용할 수 있습니다

textView.setText(text.toUpperCase()); 
-1

안드로이드 : 투자 ICS에 사용되지 않는, 그래서 나는 (의 String.toUpperCase()와 IE) 코드에서 수행하는 것이 더해야 추측된다

또 다른 시도가 될 수

android:inputType="textCapWords" 

하지만 EditText가 작동해야한다고 생각합니다.

이것이 코드의 이유인지 모르겠습니까? 을 어떤 버전으로 타겟팅합니까? 위의 API 레벨 14을 대상으로하는 경우

13

, 당신은

안드로이드를 사용한다 :

그렇지 않으면 textAllCaps = "true"로,이 동작을 직접 구현해야합니다.

+0

감사합니다. 이제는 API 레벨 8에서 작동하지 못하는 이유를 알았습니다. :) –

0

@ Shine의 대답은 정확합니다. 왜 투표가 실패했는지 모르겠습니다. 안드로이드는 : 불행하게도, 텍스트 뷰의 문서는이를 표시하지 API 3. 사용되지 않습니다 활용, 증거는 R.attr에 묻혀있다 :

R.attr

안드로이드 스튜디오는이 속성이 사용되지 않습니다 있음을 알려하는 데 실패합니다. 또 30 분 내가 결코 돌려주지 않을 것이다, 고맙다 google!

0

android:capitalize은 (는) 더 이상 사용되지 않습니다.

android:capitalize="words"을 사용하는 대신 android:inputType="textCapWords"을 사용해야합니다.

필요에 따라 android:inputType="textCapWords|textPersonName"과 같이 여러 값을 사용할 수도 있습니다.

관련 문제