Nat*_*ha 131 android uppercase android-edittext
在我的Android应用程序中,我有不同EditText的用户可以输入信息的位置.但是我需要强制用户用大写字母书写.你知道这样做的功能吗?
Erl*_*ton 325
Android实际上有一个内置的InputFilter就是为了这个!
edittext.setFilters(new InputFilter[] {new InputFilter.AllCaps()});
Run Code Online (Sandbox Code Playgroud)
要小心,setFilters 将重置所有其他属性这是通过XML设置(即maxLines,inputType,imeOptinos...).要防止这种情况,请将Filter(s)添加到现有的Filter.
InputFilter[] editFilters = <EditText>.getFilters();
InputFilter[] newFilters = new InputFilter[editFilters.length + 1];
System.arraycopy(editFilters, 0, newFilters, 0, editFilters.length);
newFilters[editFilters.length] = <YOUR_FILTER>;
<EditText>.setFilters(newFilters);
Run Code Online (Sandbox Code Playgroud)
Aoy*_*ami 111
如果您希望强制用户在EditText中默认使用大写字母进行书写,则只需添加即可android:inputType="textCapCharacters".(用户仍然可以手动更改为小写.)
Gab*_*han 21
设置input type为 TYPE_CLASS_TEXT| TYPE_TEXT_FLAG_CAP_CHARACTERS.本keyboard应履行这一点.
Har*_*hid 17
你可以用两种方式.
第一种方式:
android:inputType="textCapSentences"在EditText上设置.
第二种方式:
当用户输入数字时,您必须使用文本观察者并将小号更改为大写字母.
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 et) {
String s=et.toString();
if(!s.equals(s.toUpperCase()))
{
s=s.toUpperCase();
edittext.setText(s);
edittext.setSelection(edittext.length()); //fix reverse texting
}
}
});
Run Code Online (Sandbox Code Playgroud)
Abh*_*hek 13
您可以将android:textAllCaps="true"属性添加到EditText中的xml文件中.这将强制软输入键盘以全大写模式显示.您输入的值将以大写字母显示.但是,这不能确保用户只能输入UpperCase字母.如果他们想要,他们仍然可以回到小写字母.如果要确保输出为Edittext全部大写,则必须使用类的toUpperCase()方法手动转换输入String String.
ant*_*ycr 10
而不是担心处理键盘,为什么不接受任何输入,小写或大写并将字符串转换为大写?
以下代码应该有所帮助:
EditText edit = (EditText)findViewById(R.id.myEditText);
String input;
....
input = edit.getText();
input = input.toUpperCase(); //converts the string to uppercase
Run Code Online (Sandbox Code Playgroud)
这是用户友好的,因为用户不必知道您需要大写的字符串.希望这可以帮助.
Pab*_*bel 10
您应该将android:inputType="textCapCharacters"Edittext放在xml文件中.
小智 10
对我来说,它通过添加android:textAllCaps="true"和android:inputType="textCapCharacters" 起作用
<android.support.design.widget.TextInputEditText
android:layout_width="fill_parent"
android:layout_height="@dimen/edit_text_height"
android:textAllCaps="true"
android:inputType="textCapCharacters"
/>
Run Code Online (Sandbox Code Playgroud)
小智 8
更好...... 在Kotlin的一个班轮 ......
// gets your previous attributes in XML, plus adds AllCaps filter
<your_edit_text>.setFilters(<your_edit_text>.getFilters() + InputFilter.AllCaps())
Run Code Online (Sandbox Code Playgroud)
完成!
小智 8
使用输入过滤器
editText = (EditText) findViewById(R.id.enteredText);
editText.setFilters(new InputFilter[]{new InputFilter.AllCaps()});
Run Code Online (Sandbox Code Playgroud)
简单的kotlin实现
fun EditText.onlyUppercase() {
inputType = InputType.TYPE_CLASS_TEXT or InputType.TYPE_TEXT_FLAG_CAP_CHARACTERS
filters = arrayOf(InputFilter.AllCaps())
}
Run Code Online (Sandbox Code Playgroud)
filtersPS最初似乎总是空的
小智 7
试试这个代码,它会让你的输入变成大写
edittext.setFilters(new InputFilter[] {new InputFilter.AllCaps()});
Run Code Online (Sandbox Code Playgroud)
小智 5
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 et) {
String s=et.toString();
if(!s.equals(s.toUpperCase()))
{
s=s.toUpperCase();
edittext.setText(s);
}
editText.setSelection(editText.getText().length());
}
});
Run Code Online (Sandbox Code Playgroud)
这样做:
// ****** Every first letter capital in word *********
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="textCapWords"
/>
//***** if all letters are capital ************
android:inputType="textCapCharacters"
Run Code Online (Sandbox Code Playgroud)
在kotlin中的.kt文件中进行更改:
edit_text.filters = edit_text.filters + InputFilter.AllCaps()
Run Code Online (Sandbox Code Playgroud)
使用合成属性直接访问ID为的小部件。在XML中,为您的编辑文本添加以下两个标志:
<EditText
android:id="@+id/edit_text_qr_code"
android:layout_width="match_parent"
android:layout_height="wrap_content"
...other attributes...
android:textAllCaps="true"
android:inputType="textCapCharacters"
/>
Run Code Online (Sandbox Code Playgroud)
这会将键盘更新为大写启用。
尝试使用以下任何一种代码都可以解决您的问题。
以编程方式:
editText.filters = editText.filters + InputFilter.AllCaps()
Run Code Online (Sandbox Code Playgroud)
XML:
android:inputType="textCapCharacters" with Edittext
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
118222 次 |
| 最近记录: |