2015-04-25 1 views
3

Я хотел бы знать, как сменить раскладку клавиатуры в методе onSwipe.
У меня есть qwerty.xml с буквами, но мне нужны цифры и символы.
Эти две группы символов находятся в numeric.xml.
numeric.xml будет отображаться, и qwerty.xml будет скрыт, когда я провложу влево или вправо.Как изменить раскладку клавиатуры в методе onSwipe?

Если вам нужна какая-либо часть моего кода, пожалуйста, спросите.

ответ

2

Вам необходимо изменить макет на свой объект клавиатуры в InputManagerService. Затем вам нужно аннулировать все ключи, чтобы клавиатура была перерисована. Как так:

public class MyKeyboard extends InputMethodService implements KeyboardView.OnKeyboardActionListener 
{ 

    private KeyboardView myKeyboardView; 
    private Keyboard myKeyboard; 

    public View onCreateInputView() 
    { 

     viewOfKeyboard = (KeyboardView)getLayoutInflater().inflate(R.layout.keyboard1, null); 
     theKeyboardLayout = new Keyboard(this, R.xml.keyboardlayout); 
     viewOfKeyboard.setKeyboard(theKeyboardLayout); 
     viewOfKeyboard.setOnKeyboardActionListener(this); 
     return myKeyboardView; 
    } 

    public void swipeRight() 
    { 
     if(isQwerty) 
     { 
     myKeyboard = new Keyboard(this, R.xml.numeric); 
     //Creates a new keyboard object. 
     myKeyboardView.setKeyboard(myKeyboard); 
     //Assigns the new keyboard object to the keyboard view 
     myKeyboardView.invalidateAllKeys(); 
     //Makes android redraw the keyboard view, with the new layout. 
     isqwerty = false; 
     } 
     else 
     { 
     myKeyboard = new Keyboard(this, R.xml.qwerty); 
     myKeyboardView.setKeyboard(myKeyboard); 
     myKeyboardView.invalidateAllKeys(); 
     isqwerty = true; 
     } 

     //.........the rest of MyKeyboard's methods  

    } 
+0

Это работает ... Спасибо большое :) – jelic98

+0

Нет проблем. :). –