如何创建仅包含数字的自定义 Android 键盘?

How do I create a custom Android keyboard with numbers-only?

我需要创建一个只包含数字的自定义键盘。
但是我找到的所有教程都是关于普通键盘 (qwerty) 的。

我需要这样的布局,但我什至不知道从哪里开始。

请注意,仅对我的 editTexts 使用 numbersphone 输入法是行不通的。

我现在不使用键盘而是使用 GridLayout

<GridLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_alignParentEnd="true"
    android:layout_alignParentLeft="true"
    android:layout_alignParentRight="true"
    android:layout_alignParentStart="true"
    android:layout_gravity="center"
    android:columnCount="3"
    android:orientation="horizontal"
    android:weightSum="3">

    <Button
        android:layout_columnWeight="1"
        android:text="1" />

    <Button
        android:layout_columnWeight="1"
        android:text="2" />

    <Button
        android:layout_columnWeight="1"
        android:text="3" />

    <Button
        android:layout_columnWeight="1"
        android:text="4" />

    <Button
        android:layout_columnWeight="1"
        android:text="5" />

    <Button
        android:layout_columnWeight="1"
        android:text="6" />

    <Button
        android:layout_columnWeight="1"
        android:text="7" />

    <Button
        android:layout_columnWeight="1"
        android:text="8" />

    <Button
        android:layout_columnWeight="1"
        android:text="9" />

    <Button
        android:layout_columnWeight="1"
        android:layout_column="1"
        android:text="0" />
</GridLayout>

我基本上像本教程中那样做了:

https://code.tutsplus.com/tutorials/create-a-custom-keyboard-on-android--cms-22615

但是用这个

替换了qwerty.xml代码
<Keyboard xmlns:android="http://schemas.android.com/apk/res/android"
android:keyWidth="23.4375%p"
android:keyHeight="10%p" >

<Row>
    <Key android:codes="49"    android:keyLabel="1"  android:keyEdgeFlags="left" />
    <Key android:codes="50"    android:keyLabel="2" />
    <Key android:codes="51"    android:keyLabel="3" />
    <Key android:codes="-5"     android:keyLabel="Del" android:isRepeatable="true" android:horizontalGap="6.25%p" android:keyEdgeFlags="right"/>
</Row>
<Row>
    <Key android:codes="52"    android:keyLabel="4" android:keyEdgeFlags="left"  />
    <Key android:codes="53"    android:keyLabel="5" />
    <Key android:codes="54"    android:keyLabel="6" android:keyEdgeFlags="right"/>
</Row>
<Row>
    <Key android:codes="55"    android:keyLabel="7" android:keyEdgeFlags="left" />
    <Key android:codes="56"    android:keyLabel="8" />
    <Key android:codes="57"    android:keyLabel="9" android:keyEdgeFlags="right"/>
    <Key android:codes="-2"  android:keyLabel="123" android:horizontalGap="6.25%p"/>
</Row>
<Row>
    <Key android:codes="0"  android:keyLabel="ABC" android:keyEdgeFlags="left" />
    <Key android:codes="46"    android:keyLabel="."/>
    <Key android:codes="48"    android:keyLabel="0" />
    <Key android:codes="10" android:keyLabel="Ent" android:horizontalGap="6.25%p" android:keyEdgeFlags="right" />
</Row>

123 和 ABC 只是在其他键盘之间导航。如果不需要,请删除它们。