1

在我的应用程序中,我想允许用户只输入大写字母。所以我使用大写财产。

这是代码的一部分

<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

4 回答 4

5

尝试这个:

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

并将 EditText xml 属性设置为:

android:inputType="text|textCapCharacters"

希望能帮助到你 :)

于 2017-04-06T16:58:14.353 回答
1

尝试在这样的 java 类中使用它:

textView.setText(text.toUpperCase());

您还可以使用 Textwatcher 方法来应用已更改的文本

要使其从 xml 工作,您应该尝试以下操作:

android:inputType="textCapCharacters" 
于 2013-03-19T05:47:56.360 回答
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);
  }
}
});     
于 2013-03-19T05:54:30.427 回答
0

尝试这个

<EditText
android:inputType="textCapCharacters" />


<EditText
android:inputType="textCapWords" />

或者您可以在 java 文件中以编程方式进行

 String str = et.getText.toString().toUpperCase();
于 2013-03-19T05:59:57.213 回答