在我的应用中,我想让用户只输入大写字母。所以我使用了大写属性。
这是代码的一部分
<EditText
android:id="@+id/et5"
android:layout_width="140dp"
android:layout_height="wrap_content"
android:layout_x="127dp"
android:layout_y="219dp"
android:maxLength="25"
android:ems="10"
android:singleLine="true"
android:capitalize="characters"
android:text="" />
在某些情况下,我也试过这个
android:inputType="textCapCharacters"
它在模拟器中工作正常,但它无法在手机中工作。在手机中,它显示小写字母。这里有什么错误以及如何克服?
答案 0 :(得分:2)
Try this:
editText.setFilters(new InputFilter[] {new InputFilter.AllCaps()});
and set EditText xml property to:
android:inputType="text|textCapCharacters"
Hope it helps :)
答案 1 :(得分:1)
尝试在java类中使用它,如下所示:
textView.setText(text.toUpperCase());
您还可以使用Textwatcher方法应用更改文本的大写
要使其在xml中运行,您应该尝试这样做:
android:inputType="textCapCharacters"
答案 2 :(得分:0)
edittext.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) {
}
@Override
public void beforeTextChanged(CharSequence arg0, int arg1, int arg2,
int arg3) {
}
@Override
public void afterTextChanged(Editable arg0) {
String s=arg0.toString();
if(!s.equals(s.toUpperCase()))
{
s=s.toUpperCase();
edittext.setText(s);
}
}
});
答案 3 :(得分:0)
试试这个
<EditText
android:inputType="textCapCharacters" />
<EditText
android:inputType="textCapWords" />
或者您可以在java文件中以编程方式执行
String str = et.getText.toString().toUpperCase();