我的actvity_main中有两个EditText,点击它我要禁用android的软键盘。为了实现此功能,我关注this link。
两个EditText分配了以下ID
firstText and secondText
这是我应用于editText
的代码firstText.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
v.onTouchEvent(event);
InputMethodManager imm = (InputMethodManager)v.getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
if (imm != null) {
imm.hideSoftInputFromWindow(v.getWindowToken(), 0);
}
return true;
}
});
对于secondText,只有名称更改。对于这两个EditText软键盘都不显示。这正是我想要的,但我也想要光标。在这种情况下,firstText不显示键盘但具有光标。对于secondText我无法保留光标。
我尝试在条件和setOnTouchListener中打印值。它们都可以完美地运作。
有人可以帮助我解决我的错误吗?
谢谢!提前
答案 0 :(得分:1)
您可以使用以下代码显示和隐藏键盘,它适用于我。
public static void showKeyboard(Activity activity) {
if (activity != null) {
activity.getWindow()
.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE);
}
}
public static void hideKeyboard(Activity activity) {
if (activity != null) {
activity.getWindow()
.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
}
}
希望它对您有所帮助。