Android大写不在手机中的字符

时间:2013-03-19 05:44:51

标签: android android-layout android-edittext capitalize

在我的应用中,我想让用户只输入大写字母。所以我使用了大写属性。

这是代码的一部分

<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"

它在模拟器中工作正常,但它无法在手机中工作。在手机中,它显示小写字母。这里有什么错误以及如何克服?

4 个答案:

答案 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();