我创建了一个CustomFloatEntry。我正在使用仿真器Visual Studio-Android-23 Tablet
。使用德语语言环境
不,我看到数字键盘显示的问题。我可以输入数字的负数和小数点。显示屏上会显示数字,但键盘窗口的显示屏中不会出现负号或小数点。
我可以看到所有字符在TextChanged
事件中均正确显示。因此,键入1,23将导致显示123,并且该值已正确转换为1.23的双精度值。
我在做什么错?如何更改键盘窗口以显示输入的内容。
当我将文本设置为双精度值12.345时,也会显示该效果。内部转换器将Text
属性加载为12,345,但键盘窗口显示为12345!
有关此代码的更多信息:
键盘定义为
Keyboard = Keyboard.Numeric;
我还有一个自定义渲染器,该渲染器已执行并定义如下。我决定使用自定义渲染器,因为尽管这是here in this forum所述的问题。
class CustomFloatEntryRenderer : EntryRenderer
{
public CustomFloatEntryRenderer(Context context) : base(context)
{
}
protected override void OnElementChanged(ElementChangedEventArgs<Entry> e)
{
base.OnElementChanged(e);
if (this.Control == null) return;
this.Control.KeyListener = DigitsKeyListener.GetInstance("1234567890-"+ CultureInfo.CurrentCulture.NumberFormat.NumberDecimalSeparator);
}
}