2016-03-22 8 views
0

Ich muss ein neues Zeichen Tastatur hinzufügen, aktuelle ist alphanumerisch. Es wäre großartig, wenn ich Hilfe beim Umschalten zwischen Tastaturen bekommen würde. Ich habe meine Tastatur bereit, aber nur der Schalterteil bleibt übrig.Wie Sie eine weitere Tastatur auf Klick-Taste Code hinzufügen

Hier ist der Hauptcode unten.

public class SimpleIME extends InputMethodService implements OnKeyboardActionListener { 

    private KeyboardView kv; 
    private Keyboard keyboard; 

    private boolean caps = false; 

    @Override 
    public void onKey(int primaryCode, int[] keyCodes) { 
    InputConnection ic = getCurrentInputConnection(); 
    playClick(primaryCode); 
    switch(primaryCode){ 
     case Keyboard.KEYCODE_DELETE : 
      ic.deleteSurroundingText(1, 0); 
      break; 
     case Keyboard.KEYCODE_SHIFT: 
      caps = !caps; 
      keyboard.setShifted(caps); 
      kv.invalidateAllKeys(); 
      break; 
     case Keyboard.KEYCODE_DONE: 
      ic.sendKeyEvent(new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_ENTER)); 
      break; 
     default: 
      char code = (char)primaryCode; 
      if(Character.isLetter(code) && caps){ 
       code = Character.toUpperCase(code); 
      } 
      ic.commitText(String.valueOf(code),1); 
     } 
    } 

    @Override 
    public void onPress(int primaryCode) { 
    } 

    @Override 
    public void onRelease(int primaryCode) { 
    } 

    @Override 
    public void onText(CharSequence text) { 
    } 

    @Override 
    public void swipeDown() { 
    } 

    @Override 
    public void swipeLeft() { 
    } 

    @Override 
    public void swipeRight() { 
    } 

    @Override 
    public void swipeUp() { 
    } 

    @Override 
    public View onCreateInputView() { 
    kv = (KeyboardView)getLayoutInflater().inflate(R.layout.keyboard, null); 
    keyboard = new Keyboard(this, R.xml.qwerty); 
    kv.setKeyboard(keyboard); 
    kv.setOnKeyboardActionListener(this); 
    return kv; 
    } 

    private void playClick(int keyCode) { 
    AudioManager am = (AudioManager) getSystemService(AUDIO_SERVICE); 
    switch (keyCode) { 
     case 32: 
      am.playSoundEffect(AudioManager.FX_KEYPRESS_SPACEBAR); 
      break; 
     case Keyboard.KEYCODE_DONE: 
     case 10: 
      am.playSoundEffect(AudioManager.FX_KEYPRESS_RETURN); 
      break; 
     case Keyboard.KEYCODE_DELETE: 
      am.playSoundEffect(AudioManager.FX_KEYPRESS_DELETE); 
      break; 
     default: 
      am.playSoundEffect(AudioManager.FX_KEYPRESS_STANDARD); 
    } 
    } 
} 

Antwort

0

Ich weiß, diese Frage vor einem Jahr gefragt wurde, aber ich werde Ihnen die Antwort, weil es andere Menschen helfen könnte.

Unter dem folgenden Code: "Fall Keyboard.KEYCODE_DONE: ic.sendKeyEvent (neu KeyEvent (KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_ENTER)); break;"

Setzen Sie diesen Code: "Fall -201: Tastatur = new Tastatur (this, R.xml.symbols); kv.setKeyboard (Tastatur); break;"

Dann gehen Sie zu Ihrer Datei qwerty.xml und weisen Sie eine Taste den Code '-201'. Wenn diese Taste vom Benutzer gedrückt wird, wechselt die Tastaturansicht zu 'symbols.xml'

Verwandte Themen