gpt4 book ai didi

android - 如何在 fragment 中隐藏软键盘?

转载 作者:行者123 更新时间:2023-12-03 15:29:45 27 4
gpt4 key购买 nike

我想在android的 fragment 中隐藏键盘。因为一旦它显示它在所有 fragment 中仍然可见。我试试这个方法

    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:尝试在空对象引用上调用虚拟方法'java.lang.Object android.content.Context.getSystemService(java.lang.String)'”

最佳答案

For Java


试试这个
public static void hideSoftKeyboard(Activity activity) {
if (activity.getCurrentFocus() == null) {
return;
}
InputMethodManager inputMethodManager = (InputMethodManager) activity.getSystemService(Context.INPUT_METHOD_SERVICE);
inputMethodManager.hideSoftInputFromWindow(activity.getCurrentFocus().getWindowToken(), 0);
}
要调用它,只需通过单击按钮 中的以下代码即可
signIn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
hideSoftKeyboard(getActivity());
login();


}
});

For Kotlin

fun hideSoftKeyboard(activity:Activity) {
if (activity.getCurrentFocus() == null){
return
}
val inputMethodManager = activity.getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager
inputMethodManager.hideSoftInputFromWindow(activity.getCurrentFocus().getWindowToken(), 0)
}
通过单击按钮 传递以下代码
signIn.setOnClickListener(object:View.OnClickListener() {
fun onClick(v:View) {
hideSoftKeyboard(getActivity())
login()
}
})

关于android - 如何在 fragment 中隐藏软键盘?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44226736/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com