Попробуйте использовать:
mEditText.setInputType(InputType.TYPE_NUMBER_FLAG_DECIMAL);
Редактировать:
Предложение, которое я дал выше, было взято из Док. но, как вы сказали, он не работает должным образом, я могу предложить вам кое-что еще.
Добавьте TextWatcher к вашему EditText, как показано ниже, после того, как вы установили тип ввода выше:
mEditText.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence arg0, int arg1, int arg2, int arg3){
if(arg0.length()!=0)
{
String s=arg0.toString();
Character c=s.charAt(arg0.length()-1);
if(c=='/' || c=='\\' || c=='|' || c=='"' || c==':' || c==';' || c=='?' || c=='/' || c==',' || c=='<' || c=='>' || c=='!' || c=='@' || c=='#' || c=='$' || c=='%' || c=='^' || c=='&' || c=='*' || c=='(' || c==')' || c=='_' || c=='=' || c=='+' || c=='-')
{
if(arg0.length()!=1)
{
String s1=s.substring(0,arg0.length()-1);
mEditText.setText(s1);
mEditText.setSelection(s1.length());
}
else
{
mEditText.setText("");
}
}
}
}
@Override
public void beforeTextChanged(CharSequence arg0, int arg1, int arg2,int arg3) {
}
@Override
public void afterTextChanged(Editable arg0) {
}
}