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