0

Qwerty キーボードからスマイリー キーボードに切り替えるなど、ユーザーがキーボードを切り替えられるようにしようとしています。ユーザーがシフトを使用して、または iPhone で地球儀ボタンを使用して Qwerty から顔文字に切り替える方法の概念を理解するのに苦労しています。実際の「スイッチ」をコーディングする方法について混乱しています。softkeyboard SDK サンプルで以下のコードを見つけましたが、これがどのように切り替えが行われるのか疑問に思っています。

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);
        }
    }

繰り返しますが、ユーザーがシフトボタンを押して絵文字に切り替え、選択したらqwertyに戻って送信できるようにするスイッチを初期化しようとしています...

4

1 に答える 1

0

サンプルのソフト キーボードは、シフト キーが押されるたびに記号キーボードから記号シフト キーボードに変更されるようにコーディングされています。顔文字キーボード レイアウトをローテーションに追加するには、投稿されたコードを次のように変更します。

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);
    }

}
于 2012-04-12T03:17:51.460 に答える