我正在尝试为平板电脑制作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);
}
}
答案 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);