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

Jor*_*ren 52 android

这存在吗?我需要创建一个总是大写的TextView.

Lar*_*onk 107

试试这个:

   <TextView 
            android:textAllCaps="true"
    />
Run Code Online (Sandbox Code Playgroud)

  • `android:textAllCaps`仅在你的minSdkVersion> = 14(冰淇淋三明治)时才有效 (7认同)
  • 这可以,但不是在所有版本或布局编辑器中. (4认同)

lan*_*r16 31

我在TextView属性中看不到这样的内容.但是,您可以在设置前将文本设为大写:

textView.setText(text.toUpperCase());
Run Code Online (Sandbox Code Playgroud)

如果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) {
    }
};
Run Code Online (Sandbox Code Playgroud)

  • 这不会创建stackOverFlow吗? (3认同)

小智 31

对于EditText,您可以使用InputFilter.AllCaps作为过滤器

editText.setFilters(new InputFilter[]{new InputFilter.AllCaps()});
Run Code Online (Sandbox Code Playgroud)

请参阅:http: //d.android.com/reference/android/text/InputFilter.AllCaps.html

您还可以通过android:inputType以下方式指定EditText :

<EditText
    ...
    android:inputType="textCapCharacters" />
Run Code Online (Sandbox Code Playgroud)

  • @Raykud你在哪里看到`textCapCharacters`被弃用了? (2认同)

小智 11

使用

android:textAllCaps="true" 
Run Code Online (Sandbox Code Playgroud)

这将使你的所有Textview资本.