我的应用程序的永久键盘可见性

时间:2012-08-31 10:38:22

标签: android static keyboard visibility

我正在尝试为平板电脑制作Android应用程序。我需要在默认情况下在所有活动上方显示键盘,当用户按下键时我不需要隐藏键盘。 任何让它工作的想法???

编辑:使用自定义EditText

解决
    public class CustomEdit extends EditText {

public CustomEdit(Context context, AttributeSet attrs) {
    super(context, attrs);
    // TODO Auto-generated constructor stub
}
@Override
public boolean onKeyPreIme(int keyCode, KeyEvent event) {
    // TODO Auto-generated method stub
    Log.e("Log", "onKeyPreIme");
    return true;
    //return super.onKeyPreIme(keyCode, event);
}

}

Android: How to make the keypad always visible?

3 个答案:

答案 0 :(得分:2)

InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
            imm.toggleSoftInput(InputMethodManager.SHOW_FORCED,0);

并且还添加了这个来捕捉backButton被按下并且什么都不做。

@Override
    public void onBackPressed() {
        // do nothing
        return;

    }

此外,

mEditText.setOnKeyListener(new View.OnKeyListener() {
            public boolean onKey(View v, int keyCode, KeyEvent event) {


            if (keyCode == KeyEvent.KEYCODE_BACK) 
                     // again do nothing

              return false;
                  } };

注意: 只有添加 android:windowSoftInputMode="stateAlwaysVisible" 才会显示键盘,但如果你不这样做,可以通过按BackButton来解除键盘t覆盖backButton。

答案 1 :(得分:2)

你可以在你的清单中使用它,android:windowSoftInputMode =“stateAlwaysVisible”用于所有活动。

答案 2 :(得分:1)

我在我的一个应用程序中实现了这一点。 你需要以下代码。

// getting InputMethodManager system service which will handle aur
        // keyboard event
        InputMethodManager imm = (InputMethodManager) getSystemService(INPUT_METHOD_SERVICE);

        // restartInput method will restart the current view with its updated 
        // content. here medtName is a EditText
        imm.restartInput(medtName);

        // toggleSoftInput will responsible for showing or hiding device
        // keyboard.
        imm.toggleSoftInput(InputMethodManager.SHOW_FORCED, 0);