0

我在我的 Android 项目上创建了自己的键盘,它工作正常;这是一小段代码:

mKeyboard = new Keyboard(this, R.layout .keyboard);
mKeyboardView = (CustomKeyboardView) findViewById(R.id.KeyboardArea);
mKeyboardView.setKeyboard(mKeyboard);

每当用户触摸我的 Activity 的 editText 时,我都会让它出现。我的问题是,如果我按下模拟器键盘的中央按钮,标准键盘仍然可以工作......此外,尽管我放了这个:

android:windowSoftInputMode="adjustResize"

在我的 AndroidManifest 文件中,但它仅适用于标准键盘......那么,是否可以用我的自定义软键盘完全替换系统的软键盘?

4

2 回答 2

1

尝试:getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);

另请参阅:如何在焦点更改时停止软键盘自动显示(OnStart 事件)

于 2011-08-27T14:40:34.780 回答
0

你只要这样做......

int lastwidth;

@Override
    public void onInitializeInterface() {

        if(mKeyboard!=null){
            int diswidth = getMaxWidth();
            if(lastwidth==diswidth){
                return;
            }
            lastwidth=diswidth;
        }

        alphakeyb = new Keyboard(this, R.layout.alphakey);

    }

    @Override
    public View onCreateInputView() {

        // inflatin keyboardview from xml file
        keybview = (KeyboardView) getLayoutInflater().inflate(R.layout.customkeybview,null);

        // setting listner on keyboardview
        keybview.setOnKeyboardActionListener(this);
        // setting keyboard to keyboardview
        keybview.setKeyboard(alphakeyb);

        return keybview;

    }

您也可以参考 API Demos 中的 android 软键盘示例

于 2011-10-01T08:40:19.450 回答