2012-12-01 24 views
0

我從頭創建了一個自定義鍵盤,它工作正常,但我有兩個鍵的問題。在Android應用軟鍵盤上減號加號登錄

C - 清除鍵,當用戶按下時清除文本 +/- - 在數字前添加/刪除減號。

所有的按鍵都可以正常工作,當我查看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> 

謝謝 德尼羅

回答

0

嗯...我還沒有找到一個解決方案,從構建鍵盤海峽。 我不認爲有代碼支持+/-或清除。 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); 

} 

感謝