首页 > 解决方案 > EditText 数字仅使用 C#?

问题描述

我在 AlertDialogue 中调用 EditText,我希望它只接受数字/具有数字键盘。EditText 没有 XML 到 android:input="numbers" 它。

...
EditText en = new EditText(this);
Android.App.AlertDialog.Builder at = new Android.App.AlertDialog.Builder(this);
at.SetTitle("Unit Initiative");
at.SetMessage("Please enter a number");
at.SetView(en);

at.SetPositiveButton("Add", delegate
{
    int number;
    bool success = Int32.TryParse(en.Text, out number);
    if (success)
    {
        itemUnit.ItemNumber = number;
        ItemUnits.Add(itemUnit);
        iuAdapter.Add(itemUnit);
        iuAdapter.NotifyDataSetChanged();
    }
    else
    {
        en.Text = "";
        Toast.MakeText(this, 
                       "Please Input a Number", 
                        ToastLength.Short).Show();

    }
});
at.SetNegativeButton("Cancel", delegate
{
    return;
});
at.Show();
});
ad.SetCancelable(true);

ad.SetNegativeButton("Cancel", delegate
{
    return;
});
ad.Show();
};
}

当前方法不是很好,如果您不输入数字,将导致弹出窗口无法将项目添加到列表中。

我宁愿有一种方法将其设置为仅具有数字键盘,但我看到的唯一解决方案是通过 XML 或 Java,是否有 C# 替代方案可以强制 Edittext 键盘仅是数字?

标签: c#androidxamarinandroid-edittextint

解决方案


您可以使用InputTypeEditText 的属性并将其设置InputTypes.ClassNumber为仅显示带有数字的键盘。

前任。:editText.InputType = InputTypes.ClassNumber;


推荐阅读