2016-12-05 9 views
1

Мне нужно создать пользовательскую клавиатуру, содержащую только цифры.
Но все обучающие материалы, которые я нашел, касаются обычных клавиатур (qwerty).Как создать пользовательскую клавиатуру Android с номерами?

Мне нужен макет, подобный этому, но я не знаю, с чего начать.

enter image description here

Обратите внимание, что только с помощью метода numbers или phone ввода для моих editTexts не будет делать.

+1

Или вы можете просто создать свои собственные кнопки и макет под текстом PIN-кода с цифрами. – HendraWD

+2

«Обратите внимание, что просто использование номеров или метода ввода телефона для моих editTexts не будет» - создание специального редактора методов ввода вам не поможет, так как пользователю не нужно использовать свой редактор специальных методов ввода, если вводя в ваши виджеты EditText. Похоже, что это не должно быть «EditText» вообще, но, как предлагает HendraWD, просто набор кнопок, которые вы используете для заполнения «TextView» в качестве визуальной обратной связи. – CommonsWare

+1

http://stackoverflow.com/a/21873135/3887432 –

ответ

0

Теперь я пошел использовать без клавиатуры и вместо этого использовал 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> 
1

Я сделал это в основном как в этом учебнике:

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 просто перемещение между другими клавиатурами. Удалите их, если не нужно.

Смежные вопросы