2

我正在尝试为平板电脑制作一个 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:如何使键盘始终可见?

4

3 回答 3

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,则可以通过按 BackButton 将其关闭。

于 2012-08-31T10:41:03.327 回答
2

您可以在清单中使用它, android:windowSoftInputMode="stateAlwaysVisible" 用于所有活动。

于 2012-08-31T10:41:45.527 回答
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);
于 2012-08-31T10:49:55.437 回答