5

カスタムキーボードの作成に取り組んでいます。Hereから、そのための非常に優れた便利なデモを入手しました。キーボードの複数のテーマを作成したいので、キーボードの別のレイアウトを作成しますが、現在の問題は、現在のキーボードのレイアウトを設定する方法がわからないか、キーボードを新しくロードするか、何か他のことをしなければならないことです..変更するにはキーボードのデザインにはアイデアがありません。

私のコンセプトは、ユーザーがアクティビティからキーボードのテーマを選択する必要があり、キーボードのデザインが変わるということです。

誰でも私を助けることができますか、この問題を解決するためのアイデアを持っています..?

4

1 に答える 1

13

カスタム キーボードのレイアウトを変更するソリューションを取得します。

キーボードの初回ロード時に onCreateInputView() が呼び出されます。その後、キーボードを開くと onStartInputView(EditorInfo 属性、ブール値の再起動) が毎回呼び出されます。

したがって、キーボード(テーマ)のレイアウトは onCreateInputView() で定義する必要があります

public KeyboardView mInputView;
public View onCreateInputView() {

    SharedPreferences pre = getSharedPreferences("test", 1);
    int theme = pre.getInt("theme", 1);

    if(theme == 1)
    {
        this.mInputView = (KeyboardView) this.getLayoutInflater().inflate(R.layout.input, null);
    }else
    {
        this.mInputView = (KeyboardView) this.getLayoutInflater().inflate(R.layout.input_2, null);

    }
    this.mInputView.setOnKeyboardActionListener(this);
    this.mInputView.setKeyboard(this.mQwertyKeyboard);
    return this.mInputView;
}

onStartInputViewでこれを行います

public void onStartInputView(EditorInfo attribute, boolean restarting) {
    super.onStartInputView(attribute, restarting);

    setInputView(onCreateInputView());
}
于 2013-01-07T12:56:36.137 に答える