2012-04-10 155 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); 
    } 

} 
相關問題