4

我有一个 edittext,我希望我在 edittext 中输入的任何字符都以大写字母显示。我用过这个:

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:id="@+id/editText"
        android:layout_width="fill_parent"
        android:layout_height="30dp"
        android:capitalize="characters"/>
于 2012-02-22T07:25:33.683 回答
1

在你的 editText android:capitalize="characters" 中试试这个

于 2012-02-22T07:21:43.730 回答
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 回答