Android EditText Capital Characters

时间:2012-02-22 07:17:50

标签: android android-edittext capitalize

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

  

edittext.setInputType(InputType.TYPE_TEXT_FLAG_CAP_CHARACTERS);

但它不起作用。我想动态地做。任何想法。

7 个答案:

答案 0 :(得分:12)

您只需要尝试使用 android:inputType 属性。

根据您的要求,您可以加入android:inputType="textCapCharacters"

答案 1 :(得分:8)

黑客的类型,试试这个:

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中,如果这不起作用..

答案 2 :(得分:1)

在editText中尝试此操作     机器人:大写= “字符”

答案 3 :(得分:1)

<EditText
        android:id="@+id/editText"
        android:layout_width="fill_parent"
        android:layout_height="30dp"
        android:capitalize="characters"/>

答案 4 :(得分:1)

动态执行:

edittext.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_FLAG_CAP_CHARACTERS);

答案 5 :(得分:1)

   EditText txt = FindViewById<EditText>(Resource.Id.textView1);
   txt.SetFilters(new Android.Text.IInputFilter[] {
                      new Android.Text.InputFilterAllCaps()
                  });

答案 6 :(得分:-1)

你可以尝试这个,如果没有其他工作

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

将此代码添加到EditText的onTextChangeListener