减号在Android应用程序中的软键盘上签名

时间:2012-12-01 19:13:38

标签: android unicode keyboard custom-controls

我从头开始创建了一个自定义键盘,它工作正常,但我有2个键的2个问题。

C - 清除键,当用户按下时清除文本 +/- - 在数字之前添加/删除减号。

所有密钥都可以正常使用android代码,当我查看SDK示例时,他们使用的是Unicode(不是Android代码)。它在示例中工作正常,但在我的应用程序中它没有做任何事情。

<?xml version="1.0" encoding="utf-8"?>
<Keyboard 
 xmlns:android="http://schemas.android.com/apk/res/android"
android:keyWidth="25%p" 
android:horizontalGap="0px"
android:verticalGap="0px" 
android:keyHeight="40dip"
>

<Row>
    <Key android:codes="14" android:keyLabel="7" android:keyEdgeFlags="left"/>
    <Key android:codes="15" android:keyLabel="8"/>
    <Key android:codes="16" android:keyLabel="9"/>
    <Key android:codes="67"  android:keyIcon="@drawable/keyboard_delete"
        android:iconPreview="@drawable/keyboard_delete"
        android:keyEdgeFlags="right"/>

</Row>

<Row>
    <Key android:codes="11" android:keyLabel="4" android:keyEdgeFlags="left"/>
    <Key android:codes="12" android:keyLabel="5"/>
    <Key android:codes="13" android:keyLabel="6"/>
    <Key android:codes="" android:keyLabel="C" android:keyEdgeFlags="right"/>
</Row>

<Row>
    <Key android:codes="8" android:keyLabel="1" android:keyEdgeFlags="left"/>
    <Key android:codes="9" android:keyLabel="2"/>
    <Key android:codes="10" android:keyLabel="3"/>
    <Key android:codes="69" android:keyLabel="±" android:keyEdgeFlags="right"/>
</Row>
<Row>
    <Key android:codes="7" android:keyLabel="0" android:keyWidth="50%p"/>
    <Key android:codes="56" android:keyLabel="."/>
</Row>
</Keyboard>

谢谢 尼鲁

1 个答案:

答案 0 :(得分:0)

嗯......我还没有找到一个解决方案来建立键盘。 我不认为有代码支持+/-或清除。 我通过听众解决了这个问题

    public void onKey(int primaryCode, int[] arg1) {
// TODO Auto-generated method stub
long eventTime = System.currentTimeMillis();
KeyEvent event = new KeyEvent(eventTime, eventTime,
    KeyEvent.ACTION_DOWN, primaryCode, 0, 0, 0, 0,
    KeyEvent.FLAG_SOFT_KEYBOARD | KeyEvent.FLAG_KEEP_TOUCH_MODE);

 if(primaryCode==177)
 {
 pressedC_Button();
 }
else
 if(primaryCode==241)
{
  pressedNegative_button();
}

dispatchKeyEvent(event);

} 

由于