Android EditText仅包含文本、数字和下划线,如Instagram ID

Android EditText仅包含文本、数字和下划线,如Instagram ID,android,android-edittext,Android,Android Edittext,我有一个功能,我只需要验证字符、数字和下划线(没有任何其他特殊字符),就像Instagram ID一样 我试了很多。甚至我在xml中使用digit属性,在java类中使用InputFilter 真正的问题是什么 1.)在某些设备中,它工作正常 2.)在某些设备中,当我按下空格键时,它会自动工作,就像键盘上的反按一样,意味着它会删除最后一个字符 请为我推荐一个合适的解决方案来开发Instagram Id等功能 非常感谢 提前 我的xml在这里 <EditText android:id

我有一个功能,我只需要验证字符、数字和下划线(没有任何其他特殊字符),就像Instagram ID一样

我试了很多。甚至我在xml中使用digit属性,在java类中使用InputFilter

真正的问题是什么

1.)在某些设备中,它工作正常

2.)在某些设备中,当我按下空格键时,它会自动工作,就像键盘上的反按一样,意味着它会删除最后一个字符

请为我推荐一个合适的解决方案来开发Instagram Id等功能

非常感谢 提前

我的xml在这里

<EditText
    android:id="@+id/edUniqueID"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginLeft="45dp"
    android:digits="_1234567890qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM"
    android:gravity="center"
    android:inputType="text"
    android:maxLength="15"
    android:padding="12dp"
    android:singleLine="true"
    android:textColor="@color/white"
    android:textSize="16sp" />

您可以使用下面的代码以编程方式实现此功能

InputFilter过滤器=新的InputFilter(){
公共CharSequence筛选器(CharSequence源、int开始、int结束、,
跨越目的地、内部数据起点、内部数据起点){
for(int i=start;i
希望这对你有帮助


尝试使用此功能。

<EditText 
  android:inputType="text" 
  android:digits="0,1,2,3,4,5,6,7,8,9,qwertzuiopasdfghjklyxcvbnm,_" 
/>

显示带有数字属性的xml代码检查我添加的
EditText
@Parsania hardik在我的情况下不工作的可能重复项。我已经用过了。@Nerevarbro您的xml在我的工作室工作。我查过了。你有什么设备???请给我你的设备的完整描述。我收到了摩托罗拉G3,你能告诉我你的设备版本吗?事实上,它在较新的Androids(如4.0+)中运行得不太好。它在EditText中还包括“,”(Coma)。@HarshPatel如果你需要包含逗号,请保留它,否则你也可以使用这个
android:digits=“0123456789qwertzuiopasdfghjklyxcvbnm”
@jaydroider如果我在没有昏迷的情况下使用,它也会出现同样的问题。
<EditText 
  android:inputType="text" 
  android:digits="0,1,2,3,4,5,6,7,8,9,qwertzuiopasdfghjklyxcvbnm,_" 
/>
<EditText 
  android:inputType="text" 
  android:digits="0123456789qwertzuiopasdfghjklyxcvbnm_"
/>