EditText textAllCaps不使用textIsSelectable

时间:2016-01-27 12:24:27

标签: android android-layout

我的布局中有一个TextView:

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textAllCaps="true"
    android:text="Hello"
    />

textAllCaps工作正常,没问题。但是当我尝试通过添加textIsSelectable

来选择文本时
<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textAllCaps="true"
    android:textIsSelectable="true"
    android:text="Hello"
    />

textAllCaps不起作用。看起来这两个属性无法正常协同工作。你有什么建议吗?如何使文本全部大写和可选择(我对一个最明确的方式感兴趣,不设置文本更改监听器和手动大写文本)。对于任何建议,我将不胜感激,谢谢。

6 个答案:

答案 0 :(得分:4)

您可以在Activity中尝试此操作:

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

答案 1 :(得分:0)

我找到了一个解决方案。这是使用 AppCompatTextView app:textAllCaps

<android.support.v7.widget.AppCompatTextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    app:textAllCaps="true"
    android:textIsSelectable="true"
    android:text="Hello"
    />

我不确定这是最好的解决方案(AppCompatTextView docs告诉我们仅在创建自定义组件时才使用此组件),但它可以正常工作。

答案 2 :(得分:0)

您可以将inputType属性设置为&#34; textCapCharacters&#34;对于大写键盘默认

<android.support.design.widget.TextInputEditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="textCapCharacters"
/>

答案 3 :(得分:0)

use like this

<android.support.design.widget.TextInputLayout
                            android:id="@+id/input_postcode"
                            android:layout_width="match_parent"
                            android:layout_height="wrap_content"

                            android:inputType="textCapCharacters"  //use this line dont forgot
                            android:textColorHint="@color/white"
                            app:hintTextAppearance="@style/TextAppearance.App.TextInputLayout">

                            <EditText
                                android:id="@+id/et_postcode"
                                android:layout_width="match_parent"
                                android:layout_height="wrap_content"
                                android:layout_marginTop="10dp"
                                android:backgroundTint="@color/white"
                                android:gravity="center_vertical"
                                android:hint="Post code "
                                android:inputType="text" //dont use hereinputtype
                                android:imeOptions="actionNext"
                                android:maxLength="4"
                                android:padding="10dp"
                                android:textAllCaps="true"
                                android:singleLine="true"
                                android:textColor="@color/white"
                                android:textColorHint="@color/white"
                                android:textSize="15sp" />
                        </android.support.design.widget.TextInputLayout>

答案 4 :(得分:0)

use like this

<android.support.design.widget.TextInputLayout
                            android:id="@+id/input_postcode"
                            android:layout_width="match_parent"
                            android:layout_height="wrap_content"

                            android:inputType="textCapCharacters"  //use this line dont forgot
                            android:textColorHint="@color/white"
                            app:hintTextAppearance="@style/TextAppearance.App.TextInputLayout">

                            <EditText
                                android:id="@+id/et_postcode"
                                android:layout_width="match_parent"
                                android:layout_height="wrap_content"
                                android:layout_marginTop="10dp"
                                android:backgroundTint="@color/white"
                                android:gravity="center_vertical"
                                android:hint="Post code "
                                android:inputType="text" //dont use hereinputtype
                                android:imeOptions="actionNext"
                                android:maxLength="4"
                                android:padding="10dp"
                                android:textAllCaps="true"
                                android:singleLine="true"
                                android:textColor="@color/white"
                                android:textColorHint="@color/white"
                                android:textSize="15sp" />
                        </android.support.design.widget.TextInputLayout>`enter code here`

答案 5 :(得分:-2)

您可以将android:textAllCaps =“true”属性添加到EditText中的xml文件中。