0

カスタム キーボードを最初から作成しましたが、正常に動作しますが、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>

ニロさんありがとう

4

1 に答える 1

0

ええと...私は組み込みのキーボードからの解決策を見つけていません。+/-またはclearをサポートするコードはないと思います。Iv'eはリスナーを通してそれを解決しました

    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);

} 

ありがとう

于 2012-12-02T23:59:57.617 に答える