我有一个 edittext,我希望我在 edittext 中输入的任何字符都以大写字母显示。我用过这个:
edittext.setInputType(InputType.TYPE_TEXT_FLAG_CAP_CHARACTERS);
但它不起作用。我想动态地做。有任何想法吗。
我有一个 edittext,我希望我在 edittext 中输入的任何字符都以大写字母显示。我用过这个:
edittext.setInputType(InputType.TYPE_TEXT_FLAG_CAP_CHARACTERS);
但它不起作用。我想动态地做。有任何想法吗。
您只需要尝试使用android:inputType属性。
根据您的要求,您可以包括android:inputType="textCapCharacters"
黑客类型,试试这个:
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 中。
<EditText
android:id="@+id/editText"
android:layout_width="fill_parent"
android:layout_height="30dp"
android:capitalize="characters"/>
在你的 editText android:capitalize="characters" 中试试这个
为了动态地做:
edittext.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_FLAG_CAP_CHARACTERS);
EditText txt = FindViewById<EditText>(Resource.Id.textView1);
txt.SetFilters(new Android.Text.IInputFilter[] {
new Android.Text.InputFilterAllCaps()
});
你也可以试试这个,如果没有其他方法
String text=editText.getText().toString();
editText.setText(text.toUpperCase());
将此代码添加到 EditText 的 onTextChangeListener