原因在于EditText的父类TextView有一个isMultilineInputType的方法会覆盖singleline的值。只有inputType为text或multiline才允许换行。inputType不填默认是可换行的。
解决方法:EditText的xml设置
android:digists="0123456789\n"
然后代码设置
String digists = "0123456789\n";
mEdittext.setKeyListener(DigitsKeyListener.getInstance(digits));
通过以上设置即可实现只允许数字输入,可换行,又可弹出默认数字键盘