我正在尝试制作一个平板电脑应用程序,它有几个设置为 InputType="number" 的编辑文本字段,因此它看起来像一个小键盘,而不是整个键盘。这显然是因为我只想在该字段中输入数字。
但是,我想检测用户是否按下了 ENTER 键。如果他们这样做了,我想关闭软键盘——所以它比点击那个小向下箭头按钮来隐藏键盘更容易和更容易访问。我已经为屏幕上另一个接受所有字符(使用默认键盘)的编辑文本框做了这件事,而且效果很好。但是由于某种原因,当我尝试从数字键盘检测按键时,我无法这样做。
所以这是我似乎无法弄清楚的问题:当我在键盘上添加一个监听器时,没有任何效果。屏幕上似乎没有出现任何数字。如果我删除侦听器,小键盘会再次正常工作,但是我无法听到按下的回车键,所以我可以关闭软键盘。
所以,这就是我得到的:
<EditText
android:id="@+id/NumOfAdults_EditText"
android:layout_width="70sp"
android:layout_height="50sp"
android:inputType="number"
android:textSize="20sp"
android:textStyle="bold"
android:gravity="center"
android:selectAllOnFocus="true"
/>
我像这样听它:
var editTextBox = FindViewById<EditText>(Resource.Id.NumOfAdults_EditText);
editTextBox.KeyPress += (intentSender, e) =>
{
if (e.Event.Action == KeyEventActions.Down && e.KeyCode == Keycode.Enter)
{
CloseSoftKeyboard();
e.Handled = true;
}
};
那么有谁知道为什么当我这样做时,数字输入键停止工作?当 inputType 未设置为 number 或 phone 时,此代码完全可以正常工作。有趣的是,如果我在检测中添加 Make.Toast,我实际上可以看到按键工作(甚至可以让 Num0-9 显示)但屏幕上似乎又没有任何工作。