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"这个属性,
在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;
}
});