Androidでactivityとfragmentでソフトキーボードを隠す

1157 ワード

今日プロジェクトをする時、商品を検索する機能をして、ソフトキーボードの車に戻ることをクリックした後にソフトキーボードが自動的に隠すことができないことを発見して、インターネットを利用して調べて、発見方法は多くて、しかしfragmentとactivityを同時に互換することができるのは多くありません.StackOverflowを一周して2つの解決策を見つけました
public class hidesoftboard{

    /**
     *      (    Activity,    Fragment)
     */
    public static void hideSoftKeyboard(Activity activity) {
        View view = activity.getCurrentFocus();
        if (view != null) {
            InputMethodManager inputMethodManager = (InputMethodManager) activity.getSystemService(Activity.INPUT_METHOD_SERVICE);
            inputMethodManager.hideSoftInputFromWindow(view.getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);
        }
    }

    /**
     *      (   Activity,Fragment)
     */
    public static void hideSoftKeyboard(Context context, List viewList) {
        if (viewList == null) return;

        InputMethodManager inputMethodManager = (InputMethodManager) context.getSystemService(Activity.INPUT_METHOD_SERVICE);

        for (View v : viewList) {
            inputMethodManager.hideSoftInputFromWindow(v.getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);
        }
    }
}