Java edittext在输入类型android studio中设置有限字符
我希望edittext只能以编程方式输入这些字符“0123456789ABCDEF”Java edittext在输入类型android studio中设置有限字符,java,android,Java,Android,我希望edittext只能以编程方式输入这些字符“0123456789ABCDEF” numOriginal.setText(""); base = Integer.parseInt(selectorBaseOriginal.getSelectedItem().toString()); String digits =""; for(int i=0;i<base;i++){ digits+=digitos.charAt(i); }
numOriginal.setText("");
base = Integer.parseInt(selectorBaseOriginal.getSelectedItem().toString());
String digits ="";
for(int i=0;i<base;i++){
digits+=digitos.charAt(i);
}
if(base<=10){
//numbers
numOriginal.setKeyListener(DigitsKeyListener.getInstance(digits));
}else{
//i want numbers an characters "0123456789ABCDEF"
}
numOriginal.setText(“”);
base=Integer.parseInt(selectorBaseOriginal.getSelectedItem().toString());
字符串数字=”;
对于(inti=0;i我想这个问题的答案可以在这里找到
只需对您案例的代码进行一些调整:
InputFilter filter = new InputFilter() {
public CharSequence filter(CharSequence source, int start, int end,
Spanned dest, int dstart, int dend) {
for (int i = start; i < end; i++) {
if (!"0123456789ABCDEF".contains(source.charAt(i))) {
Toast.makeText(context,"Invalid Input",Toast.LENGTH_SHORT).show();
return "";
}
}
return null;
}
};
numOriginal.setFilters(new InputFilter[] { filter });
InputFilter过滤器=新的InputFilter(){
公共CharSequence筛选器(CharSequence源、int开始、int结束、,
跨越目的地、内部数据起点、内部数据起点){
for(int i=start;i