文本转换:Android中的大写等价物?

文本转换:Android中的大写等价物?,android,Android,这是否存在?我需要创建一个始终大写的TextView。我在TextView属性中没有看到类似的内容。但是,您可以在设置文本之前将其设置为大写: textView.setText(text.toUpperCase()); 如果TextView是EditText,并且您希望用户键入的任何内容都是大写的,那么可以实现TextWatcher并使用EditText addTextChangedListener添加它,并在onTextChange方法上获取用户输入,并将其替换为相同的大写文本 editTe

这是否存在?我需要创建一个始终大写的TextView。

我在TextView属性中没有看到类似的内容。但是,您可以在设置文本之前将其设置为大写:

textView.setText(text.toUpperCase());
如果TextView是EditText,并且您希望用户键入的任何内容都是大写的,那么可以实现TextWatcher并使用EditText addTextChangedListener添加它,并在onTextChange方法上获取用户输入,并将其替换为相同的大写文本

editText.addTextChangedListener(upperCaseTextWatcher);

final TextWatcher upperCaseTextWatcher = new TextWatcher() {

    public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
    }

    public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
        editText.setText(editText.getText().toString().toUpperCase());
        editText.setSelection(editText.getText().toString().length());
    }

    public void afterTextChanged(Editable editable) {
    }
};

对于EditText,可以使用InputFilter.AllCaps作为筛选器

editText.setFilters(new InputFilter[]{new InputFilter.AllCaps()});
见:

您还可以通过android:inputType指定编辑文本:

<EditText
    ...
    android:inputType="textCapCharacters" />

我在android开发者指南中找到:

<TextView 
...
android:capitalize="characters"
...
/>

试试这个:

   <TextView 
            android:textAllCaps="true"
    />

您可以这样做,只需在InputType中添加TYPE\u TEXT\u FLAG\u CAP\u字符:

editText.setInputType(android.text.InputType.TYPE_CLASS_TEXT
                   + android.text.InputType.TYPE_TEXT_FLAG_CAP_CHARACTERS);
我希望能得到帮助

使用

android:textAllCaps="true" 

这将使您的所有
文本视图
大写。

如果
文本
是一个字符串,则该选项有效。如果您使用
R.String.someID
从xml文件中获取字符串,那么您需要加入
Resources.getString
调用()我担心我必须这样做。我希望有一个简单的属性我丢失了。这不会造成堆栈溢出吗?这个答案是错误的。请参阅Lars回答:您可以使用
textAllCaps
属性来执行此操作。在textChanged侦听器内调用
editText.setText()
将导致无限循环。至少对我来说,它没有删除然后重新添加TextWatcher。过滤器工作得很好,非常感谢。但是,我不建议使用inputType“textCapCharacters”,因为它已被弃用。@Raykud您在哪里看到
textCapCharacters
已被弃用?我知道我很晚才发表评论,但一旦所有字符都大写,是否有类似InputFilter的内容。Allsmallcharacters?这只适用于EditText,而不是TextView。从文档中:“[…]自动大写用户键入的内容”真实答案??呵呵。。。。“android:capitalize不推荐使用:改用inputType”
android:textAllCaps
仅适用于minSdkVersion>=14(冰淇淋三明治)的情况。我知道这是3年多前的评论,但这仅适用于使用屏幕键盘的情况-如果有人有物理键盘(蓝牙或设备),则忽略它,最好用一个听者