当用户按下键盘上的按钮时,在字母键盘和数字键盘之间切换

时间:2016-06-24 17:35:50

标签: android xml android-studio keyboard android-softkeyboard

我正在从this教程构建自定义Hindi android soft keyboard。我在此key上有一个名为123的{​​{1}}。我想将键盘布局更改为另一个由数字组成的布局(我已准备好这个数字布局的xml文件),但我不知道。我该怎么做? 这是我的印地语字母的xml文件:

keyboard

这是主要的java文件:

<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
    <Keyboard xmlns:android="http://schemas.android.com/apk/res/android"
        android:keyWidth="10%p"
        android:horizontalGap="0px"
        android:verticalGap="0px"
        android:keyHeight="60dp">
        <Row>
            <Key android:codes="0x0905" android:keyLabel="अ" android:keyEdgeFlags="left"/>
            <Key android:codes="0x0906" android:keyLabel="आ"/>
            <Key android:codes="0x0907" android:keyLabel="इ"/>
            <Key android:codes="0x0908" android:keyLabel="ई"/>
            <Key android:codes="0x0909" android:keyLabel="उ"/>
            <Key android:codes="0x090A" android:keyLabel="ऊ"/>
            <Key android:codes="0x090F" android:keyLabel="ए"/>
            <Key android:codes="0x0910" android:keyLabel="ऐ"/>
            <Key android:codes="0x0913" android:keyLabel="ओ"/>
            <Key android:codes="0x0914" android:keyLabel="औ" android:keyEdgeFlags="right"/>
        </Row>
        <Row>
            <Key android:codes="0x0915" android:keyLabel="क" android:keyEdgeFlags="left"/>
            <Key android:codes="0x0916" android:keyLabel="ख"/>
            <Key android:codes="0x0917" android:keyLabel="ग"/>
            <Key android:codes="0x0918" android:keyLabel="घ"/>
            <Key android:codes="0x091A" android:keyLabel="च"/>
            <Key android:codes="0x091B" android:keyLabel="छ"/>
            <Key android:codes="0x091C" android:keyLabel="ज"/>
            <Key android:codes="0x091D" android:keyLabel="झ"/>
            <Key android:codes="0x0902" android:keyLabel="ं"/>
            <Key android:codes="0x0903" android:keyLabel="ः" android:keyEdgeFlags="right"/>
        </Row>
        <Row>
            <Key android:codes="0x091F" android:keyLabel="ट" android:keyEdgeFlags="left"/>
            <Key android:codes="0x0920" android:keyLabel="ठ"/>
            <Key android:codes="0x0921" android:keyLabel="ड"/>
            <Key android:codes="0x0922" android:keyLabel="ढ"/>
            <Key android:codes="0x0924" android:keyLabel="त"/>
            <Key android:codes="0x0925" android:keyLabel="थ"/>
            <Key android:codes="0x0926" android:keyLabel="द"/>
            <Key android:codes="0x0927" android:keyLabel="ध"/>
            <Key android:codes="0x0928" android:keyLabel="न"/>
            <Key android:codes="-100" android:keyLabel="क्षत्रज्ञ" android:keyEdgeFlags="right"/>
        </Row>
        <Row>
            <Key android:codes="0x092A" android:keyLabel="प" android:keyEdgeFlags="left"/>
            <Key android:codes="0x092B" android:keyLabel="फ"/>
            <Key android:codes="0x092C" android:keyLabel="ब"/>
            <Key android:codes="0x092D" android:keyLabel="भ"/>
            <Key android:codes="0x092E" android:keyLabel="म"/>
            <Key android:codes="0x092F" android:keyLabel="य"/>
            <Key android:codes="0x0930" android:keyLabel="र"/>
            <Key android:codes="0x0932" android:keyLabel="ल"/>
            <Key android:codes="0x0935" android:keyLabel="व"/>
            <Key android:codes="-5" android:keyLabel="✖"
                android:isRepeatable="true"
                android:keyEdgeFlags="right" />
        </Row>
        <Row android:rowEdgeFlags="bottom">
            <Key android:codes="0" android:keyLabel="123"/>
            <Key android:codes="0x0936" android:keyLabel="श"/>
            <Key android:codes="0x0938" android:keyLabel="स"/>
            <Key android:codes="32" android:keyLabel="SPACE" android:keyWidth="40%p" android:isRepeatable="true"/>
            <Key android:codes="0x0939" android:keyLabel="ह"/>
            <Key android:codes="124"
                android:keyLabel="|"
                android:popupCharacters=",!.,?"
                android:popupKeyboard="@xml/commapopup"
                android:keyWidth="10%p"/>
            <Key android:codes="-4" android:keyLabel="DONE" android:keyEdgeFlags="right"/>
        </Row>
    </Keyboard>
</PreferenceScreen>

1 个答案:

答案 0 :(得分:1)

在switch语句中Onkey方法将case作为case 0(代码为123 key)并使用以下内容:

keyboard = new Keyboard(this, R.xml.number);
kv.setKeyboard(keyboard);
kv.setOnKeyboardActionListener(this);

此处number.xml是数字键盘的布局文件。希望这有帮助。