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
android:inputType="textCapCharacters" />


<EditText
android:inputType="textCapWords" />

または、Javaファイルでプログラムで実行できます

 String str = et.getText.toString().toUpperCase();
于 2013-03-19T05:59:57.213 に答える
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 に答える