2012-04-10 56 views
0

我想让用户在键盘之间切换,例如从Qwerty切换到笑脸键盘。我无法理解用户如何通过使用Shift或iPhone全球按钮从Qwerty切换到表情图标的概念。我很困惑如何编写实际的“开关”。我在软键盘SDK示例中找到了下面的代码,我想知道是否这是交换机发生的方式。如何在键盘之间切换(从表情符号到qwerty,反之亦然)

private void handleShift() { 
     if (mInputView == null) { 
      return; 
     } 

     Keyboard currentKeyboard = mInputView.getKeyboard(); 
     if (mQwertyKeyboard == currentKeyboard) { 
      // Alphabet keyboard 
      checkToggleCapsLock(); 
      mInputView.setShifted(mCapsLock || !mInputView.isShifted()); 
     } else if (currentKeyboard == mSymbolsKeyboard) { 
      mSymbolsKeyboard.setShifted(true); 
      mInputView.setKeyboard(mSymbolsShiftedKeyboard); 
      mSymbolsShiftedKeyboard.setShifted(true); 
     } else if (currentKeyboard == mSymbolsShiftedKeyboard) { 
      mSymbolsShiftedKeyboard.setShifted(false); 
      mInputView.setKeyboard(mSymbolsKeyboard); 
      mSymbolsKeyboard.setShifted(false); 
     } 
    } 

我再次尝试初始化,允许用户按SHIFT键,切换到表情,一旦选择切换回QWERTY发送开关...

+0

可问题是你用的''==代替'.equals()'比较? '=='会看看两者是否代表内存中的同一个变量,而'equals()'将决定这两者是否相等。 – gobernador 2012-04-10 02:05:20

+0

hmmmm ....以及我不知道这段代码如何工作..这是从我没有修改它的SDK示例...我试图看到实际开关发生在哪里例如当用户想添加笑脸他们按一个笑脸或换档键选择笑脸,他们后,他们能够返回到QWERTY键盘 – 2012-04-10 03:03:19

+0

我在做类似的事情! http://stackoverflow.com/questions/16768930/implementations-of-emoji-emoticon-view-keyboard-layouts – toobsco42 2013-05-27 17:03:45

回答

0

样品软键盘编码当按下shift键时,从符号键盘改变到符号改变的键盘。为了您的表情键盘布局添加到旋转,张贴的代码更改为以下:

private void handleShift() { 
    if (mInputView == null) { 
     return; 
    } 

    Keyboard currentKeyboard = mInputView.getKeyboard(); 
    if (mQwertyKeyboard == currentKeyboard) { 
     // Alphabet keyboard 
     checkToggleCapsLock(); 
     mInputView.setShifted(mCapsLock || !mInputView.isShifted()); 
    } else if (currentKeyboard == mSymbolsKeyboard) { 
     mSymbolsKeyboard.setShifted(true); 
     mInputView.setKeyboard(mSymbolsShiftedKeyboard); 
     mSymbolsShiftedKeyboard.setShifted(true); 
    } else if (currentKeyboard == mSymbolsShiftedKeyboard) { 
     mSymbolsShiftedKeyboard.setShifted(false); 
     mInputView.setKeyboard(mEmoticonKeyboard); 
     mSymbolsKeyboard.setShifted(false); 
    } else if (currentKeyboard == mEmoticonKeyboard) { 
     mInputView.setKeyboard(mSymbolsKeyboard); 
    } 

} 
相关问题