【发布时间】:2017-05-28 11:22:32
【问题描述】:
我想在android的片段中隐藏键盘。因为一旦它显示它在所有片段中仍然可见。我试试这个方法
public static void hideKeyboard(Context ctx) {
InputMethodManager inputManager = (InputMethodManager) ctx
.getSystemService(Context.INPUT_METHOD_SERVICE);
// check if no view has focus:
View v = ((Activity) ctx).getCurrentFocus();
if (v == null)
return;
inputManager.hideSoftInputFromWindow(v.getWindowToken(), 0);
}
并在按钮单击时调用此方法
signIn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
hideKeyboard(ctx);
login();
}
});
但这会给出错误“java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.Object android.content.Context.getSystemService(java.lang.String)' on an null object reference”
【问题讨论】:
-
你为什么要找一些视图?将 View v 作为参数传递给 hideKeyboard 方法,v.getContext() 将为您提供正确的上下文,这将是具有 2 行代码的方法
-
您是否已使用 Context 对象初始化或分配
ctx? -
@ViktorYakunin 请用代码详细说明你的答案...