4

エディットテキストがあり、エディットテキストに入力した文字を大文字で表示したい。私はこれを使用しました:

edittext.setInputType(InputType.TYPE_TEXT_FLAG_CAP_CHARACTERS);

しかし、それは機能していません。ダイナミックにやりたいです。何か案は。

4

7 に答える 7

12

android:inputType属性を試す必要があります。

要件に応じて、含めることができますandroid:inputType="textCapCharacters"

于 2012-02-22T07:25:46.147 に答える
9

ハックの種類、これを試してください:

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);
       edittext.setSelection(s.length());
      }
    }
});     

これは機能するはずです(チェックする時間がありません)これが機能しない場合は、afterTextChangedのonTextChangedに行を入れてみてください。

于 2012-02-22T07:26:19.683 に答える
1

editTextでこれを試してくださいandroid:capitalize = "characters"

于 2012-02-22T07:21:43.730 に答える
1
<EditText
        android:id="@+id/editText"
        android:layout_width="fill_parent"
        android:layout_height="30dp"
        android:capitalize="characters"/>
于 2012-02-22T07:25:33.683 に答える
1

動的に行うには:

edittext.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_FLAG_CAP_CHARACTERS);
于 2013-09-10T12:34:21.593 に答える
1
   EditText txt = FindViewById<EditText>(Resource.Id.textView1);
   txt.SetFilters(new Android.Text.IInputFilter[] {
                      new Android.Text.InputFilterAllCaps()
                  });
于 2015-09-01T11:33:44.340 に答える
-1

他に何も機能しない場合は、これも試すことができます

String text=editText.getText().toString();
editText.setText(text.toUpperCase());

このコードをEditTextのonTextChangeListenerに追加します

于 2012-02-22T07:29:40.980 に答える