gpt4 book ai didi

android - Monodroid - EditText 输入法不接受数字

转载 作者:太空宇宙 更新时间:2023-11-03 12:20:55 24 4
gpt4 key购买 nike

我在使用 Mono for Android 中的 EditText 控件时遇到了一些非常奇怪的问题。我的解决方案针对 2.3,我正在 T Mobile VivaCity 上调试。这是我的 EditText 的 AXML

<EditText
android:inputType="text"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/ctl_searchText" />

当我显示包含 EditText 的 View 时,键盘会自动出现,这不是问题。问题是我无法通过点击键盘上的数字来输入任何数字,我可以在文本字段中显示数字的唯一方法是按住该键并从上下文菜单中选择数字。虽然一旦我使用这种方法输入了一个数字,我就无法删除它。我尝试了各种输入法,并在 SO 中查找了类似的问题,但无济于事。这听起来像是设备的问题吗?或者在代码/AXML 中是否有明显我没有做的事情?

== 编辑 ==

我想我已经缩小了问题的范围,它与 EditText 上使用的 KeyPress 事件处理程序有关。由于 EditText 代表搜索字段,因此我添加了属性 android:singleLine="true"以阻止返回键添加额外的行,而是说“完成”。当我向控件添加 KeyPress 事件处理程序时,它会阻止我输入数字,但如果没有处理程序,它又会开始正常运行。这是我所拥有的:

<EditText
android:id="@+id/ctl_searchText"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:singleLine="true" />
EditText ctl_searchText = FindViewById<EditText>(Resource.Id.ctl_searchText);

ctl_searchText.KeyPress += (object sender, View.KeyEventArgs e) =>
{
if (e.Event.Action == KeyEventActions.Down && e.KeyCode == Keycode.Enter)
{
Toast.MakeText (this, ctl_searchText.Text, ToastLength.Short).Show ();
e.Handled = true;
}
};

使用此代码我无法在文本字段中输入数字,但我可以输入字母。当我删除事件处理程序时,它再次工作,允许我输入所有字符。我要继续调查,这很奇怪。

最佳答案

请确认您没有使用OnKeyListener .如果是,只需检查 onKey (View v, int keyCode, KeyEvent event) 方法是否在监听器已使用事件时返回 True,否则返回 false。在你的情况下是这样的:

   ctl_searchText.setOnKeyListener(new OnKeyListener() {

public boolean onKey(View v, int keyCode, KeyEvent event){
if (keyCode == KeyEvent.KEYCODE_ENTER){
//do smth
return true;
}
return fasle;
}
});

关于android - Monodroid - EditText 输入法不接受数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16281650/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com