android:大写不起作用

ema*_*ine 8 java xml android

我有一个TextView.我试图将每个单词中的第一个字母大写.

这是TextView:

 <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>
Run Code Online (Sandbox Code Playgroud)

这是我添加文本的方式:

TextView titleView = (TextView) findViewById(R.id.textView1);
    titleView.setText( section.replace("_", " ") );
Run Code Online (Sandbox Code Playgroud)

我是否可以动态添加文本并期望它可以大写单词?另一个特点是干扰android:capitalize?被android:capitalize打破?

谢谢你的回复.

小智 14

如果您的目标是API级别14及更高版本,则应使用

机器人:textAllCaps = "真"

否则,您必须自己实现此行为.


eld*_*his 13

capitalize基本上只是KeyListener您可以在XML中设置的,因此它仅适用于用户输入的文本.正如文件所述(强调我的):

如果设置,则指定此TextView具有文本输入方法,并应自动将用户键入的内容大写.

关于如何利用Java中每个单词的第一个字母大写有一个相关的问题,它有一些有用的答案.


ban*_*ing 6

android:capitalize 现在已弃用。

android:capitalize="words"您应该考虑使用 ,而不是使用android:inputType="textCapWords"

根据您的需要,您还可以使用多个值,例如android:inputType="textCapWords|textPersonName".