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

时间:2010-07-20 01:23:26

标签: android

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

6 个答案:

答案 0 :(得分:105)

试试这个:

   <TextView 
            android:textAllCaps="true"
    />

答案 1 :(得分:31)

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

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

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

您也可以通过android:inputType指定您的EditText:

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

答案 2 :(得分:30)

我在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) {
    }
};

答案 3 :(得分:9)

使用

android:textAllCaps="true" 

这将使您的所有Textview资本。

答案 4 :(得分:2)

你可以这样做,只将TYPE_TEXT_FLAG_CAP_CHARACTERS添加到InputType ::

editText.setInputType(android.text.InputType.TYPE_CLASS_TEXT
                   + android.text.InputType.TYPE_TEXT_FLAG_CAP_CHARACTERS);

我希望得到帮助!

答案 5 :(得分:1)

我在Android开发者指南中找到了this

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