C# 禁用默认Android键盘上的按键

C# 禁用默认Android键盘上的按键,c#,android,xamarin,xamarin.forms,android-softkeyboard,C#,Android,Xamarin,Xamarin.forms,Android Softkeyboard,我的Xamarin应用程序主页上有一个Entry控件,用于输入一个人的年龄。我已将键盘设置为keyboard=“Numberic” 然而,这造成了混乱,因为至少对于Android来说,“完成”键在backspace下方,但在settings键以及。-键上方。这意味着当用户试图按“完成”时,他们忘记了按键不在右下角,这是你所期望的,他们一直误按设置键进入手机设置,这是可以理解的,有点恼人 是否可以禁用设置键和。-键,或者交换它们的位置?我不认为这是可能的,所以在这种情况下,有没有其他方法可以解决这

我的Xamarin应用程序主页上有一个
Entry
控件,用于输入一个人的年龄。我已将键盘设置为
keyboard=“Numberic”

然而,这造成了混乱,因为至少对于Android来说,“完成”键在backspace下方,但在settings键以及。-键上方。这意味着当用户试图按“完成”时,他们忘记了按键不在右下角,这是你所期望的,他们一直误按设置键进入手机设置,这是可以理解的,有点恼人

是否可以禁用设置键和。-键,或者交换它们的位置?我不认为这是可能的,所以在这种情况下,有没有其他方法可以解决这个问题

屏幕截图阐明了我的意思-可以移动或禁用带有设置cog和“…”的按键,以防止用户打开手机设置并输入负数/十进制数

我有一点没有使用过C,也从来没有在Android上使用过,但是从字符串中删除字符的想法很简单,大多数语言通常都很简单

基于我们在评论中的小讨论,以及一点研究;我相信这就是您希望从应用程序中用户输入的EditText字段中删除不需要的值的原因:

var editText = FindViewById<EditText> (Resource.Id.editText);

editText.TextChanged += (object sender, Android.Text.TextChangedEventArgs et) => {
    //step 1 grab editText value
    String newString = et.Text.ToString(); 

    //step 2 replace unwanted characters (currently '.' & '-')
    newString = newString.Replace(".", "").Replace("-", "");

    //step 3 set the editText field to the updated string
    editText.Text = newString;

};
var editText=findviewbyd(Resource.Id.editText);
editText.TextChanged+=(对象发送者,Android.Text.TextChangedEventArgs et)=>{
//步骤1获取编辑文本值
字符串newString=et.Text.ToString();
//步骤2替换不需要的字符(当前为“.”和“-”)
newString=newString.Replace(“.”,”).Replace(“-”,”);
//步骤3:将editText字段设置为更新的字符串
editText.Text=新闻字符串;
};
资源:


我还没有找到一种方法来更改Android的默认键盘,以便您可以删除不需要的键(即设置键)或对其重新排序,因此我仍在想,如果您决定必须这样做,您将需要为应用程序构建自定义键盘

始终可以禁用按钮值所在的EditText字段或从中删除字符。至于禁用设置或更改周围按钮的顺序,我不太确定系统键盘是否可以做到这一点,也许您需要一个用于该类型的自定义键盘functionality@ViaTech你能给出一个角色禁用/剥离的例子吗?这是我的第一个Xamarin项目,所以我还在努力。嗯……Xamarin,C#……给我一点时间,我需要做一点研究android的键盘是由操作系统管理的,每个设备可以有不同的键盘外观和行为。如果你试试呢?嘿,一个音符。。。我试图编辑这篇文章,将C#包含在标记中,但我不小心写了“C++”,所以我确信它会被拒绝。请在标签中添加C#,这样我就不必更改被拒绝的建议(因为xamarin使用C#,所以应该拒绝)。我觉得添加此标签将提高建议和搜索能力。。。当我第一次阅读所有内容时,我想到了Java,因为它是Android的基础,所以我觉得通过标签来澄清这个问题是最好的