EditText中android:inputType="number"遇到的坑

EditText中android:inputType="number"遇到的坑

一次Android作业要修改字体大小,首先在EditText中让用户输入数字,我在布局文件中加入

    <TextView
            android:id="@+id/tv3"
            android:text="字体大小:"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            tools:textSize="0sp"/>
    <EditText
            android:id="@+id/ed3"
            android:hint="输入1-50的数字"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:inputType="number"/>

android:inputType="number"这个属性,
EditText中android:inputType="number"遇到的坑
在idea的模拟器上可以显示只有数字的键盘,真机上并不会有只有数字的键盘,应该和输入法有关,

并且在真机上不会响应回车事件

ed3.setOnEditorActionListener(new TextView.OnEditorActionListener() {
            @Override
            public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
                if ((event != null && KeyEvent.KEYCODE_ENTER == event.getKeyCode() && KeyEvent.ACTION_DOWN == event.getAction())) {
                    String s=ed3.getText().toString();
                    if (s.matches("^([0-9]{1,2})$")&&Integer.parseInt(s)>=1&&Integer.parseInt(s)<=50){
                        int size=Integer.parseInt(s);
                        tv1.setTextSize(TypedValue.COMPLEX_UNIT_SP,size);
                        tv2.setTextSize(TypedValue.COMPLEX_UNIT_SP,size);
                        tv3.setTextSize(TypedValue.COMPLEX_UNIT_SP,size);
                        editor.putInt("textsize", size);
                        editor.commit();
                    }
                    else{
                        Toast.makeText(MainActivity.this, "输入的值不正确", Toast.LENGTH_SHORT).show();
                    }
                    return true;
                }
                return false;
            }
        });