/* * Copyright (C) 2013 Peng fei Pan * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.github.lazylibrary.util; import android.app.Activity; import android.content.Context; import android.view.View; import android.view.WindowManager; import android.view.inputmethod.InputMethodManager; import android.widget.EditText; public class InputMethodUtils { /** * 为给定的编辑器开启软键盘 * * @param editText 给定的编辑器 */ public static void openSoftKeyboard(Context context, EditText editText) { editText.requestFocus(); InputMethodManager inputMethodManager = (InputMethodManager) context.getSystemService( Context.INPUT_METHOD_SERVICE); inputMethodManager.showSoftInput(editText, InputMethodManager.SHOW_IMPLICIT); ViewUtils.setEditTextSelectionToEnd(editText); } /** * 关闭软键盘 */ public static void closeSoftKeyboard(Activity activity) { //隐藏软键盘 View view = activity.getWindow().peekDecorView(); if (view != null) { InputMethodManager inputmanger = (InputMethodManager) activity.getSystemService(Context.INPUT_METHOD_SERVICE); inputmanger.hideSoftInputFromWindow(view.getWindowToken(), 0); } } /** * 切换软键盘的状态 */ public static void toggleSoftKeyboardState(Context context) { ((InputMethodManager) context.getSystemService( Context.INPUT_METHOD_SERVICE)).toggleSoftInput( InputMethodManager.SHOW_IMPLICIT, InputMethodManager.HIDE_NOT_ALWAYS); } /** * 判断隐藏软键盘是否弹出,弹出就隐藏 * @param mActivity * @return */ public boolean keyBoxIsShow(Activity mActivity) { if (mActivity.getWindow().getAttributes().softInputMode == WindowManager.LayoutParams.SOFT_INPUT_STATE_UNSPECIFIED) { //隐藏软键盘 mActivity.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN); return true; } else { return false; } } }