Android 软键盘统制弹出(很好使,自己写的,绝对能用)

Android 软键盘控制弹出(很好使,自己写的,绝对能用)

最近在做电商类的项目,由于需求的不断变动,在有关输如文本框的地方,要求弹出软键盘,如果界面很多的下,则需要些很多代码,在空闲的时候,写了一个软键盘管理类,很好使,自己写的,亲自试过,这是一个软键盘控制单例模式实现的。

代码如下:

package com.okdi.ilife.activity.login;

import android.app.Activity;
import android.content.Context;
import android.view.View;
import android.view.inputmethod.InputMethodManager;
import android.widget.EditText;
/**
 * 类功能描述:软键盘管理界面</br>
 * 
 * @author yuyahao
 * @version 1.0 </p> 修改时间:</br> 修改备注:</br>
 */
public class InputManager {
 private Context context;
 public static InputManager  inputManager;
 private InputMethodManager imm;
 private InputManager(Context context){
  this.context = context;
  // 得到InputMethodManager的实例
  imm = (InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE);
  totleShowSoftInput();
 }
 public static InputManager getInstances(Context context){
  if(inputManager == null){
   inputManager = new InputManager(context);
  }
  return inputManager;
 }
 /**
  * 切换软键盘的显示与隐藏
  */
 public void totleShowSoftInput(){
  imm.toggleSoftInput(InputMethodManager.SHOW_FORCED,
    InputMethodManager.HIDE_IMPLICIT_ONLY);
 }
 /**
  * 判断软键盘 弹出
  */
 public void showSoftInput(){
  if (!imm.isActive()) { // 
   imm.toggleSoftInput(0, InputMethodManager.RESULT_SHOWN);
  }
 }
 /**
  *关闭软键盘
  *针对于 有一个EdtxtView
  * @param input_email
  */
 public void hideSoftInput(EditText  input_email){
  if (imm.isActive()) {
   // 关闭软键盘,开启方法相同,这个方法是切换开启与关闭状态的
   imm.hideSoftInputFromWindow(input_email.getWindowToken(), 0);
  }
 }
 /**
  * 针对于 有多个EdtxtView
  * 关闭所有的软键盘
  */
 public void hideALlSoftInput(){
  View view =   ((Activity) context).getWindow().peekDecorView();
  if (view != null) {
   imm.hideSoftInputFromWindow(view.getWindowToken(), 0);
  }
 }

}

有时候我们还需要设置其EditText的输入类型:

 
android:inputType="none"--输入普通字符
android:inputType="text"--输入普通字符
android:inputType="textCapCharacters"--输入普通字符
android:inputType="textCapWords"--单词首字母大小
android:inputType="textCapSentences"--仅第一个字母大小
android:inputType="textAutoCorrect"--前两个自动完成
android:inputType="textAutoComplete"--前两个自动完成
android:inputType="textMultiLine"--多行输入
android:inputType="textImeMultiLine"--输入法多行(不一定支持)
android:inputType="textNoSuggestions"--不提示
android:inputType="textUri"--URI格式
android:inputType="textEmailAddress"--电子邮件地址格式
android:inputType="textEmailSubject"--邮件主题格式
android:inputType="textShortMessage"--短消息格式
android:inputType="textLongMessage"--长消息格式
android:inputType="textPersonName"--人名格式
android:inputType="textPostalAddress"--邮政格式
android:inputType="textPassword"--密码格式
android:inputType="textVisiblePassword"--密码可见格式
android:inputType="textWebEditText"--作为网页表单的文本格式
android:inputType="textFilter"--文本筛选格式
android:inputType="textPhonetic"--拼音输入格式
android:inputType="number"--数字格式
android:inputType="numberSigned"--有符号数字格式
android:inputType="numberDecimal"--可以带小数点的浮点格式
android:inputType="phone"--拨号键盘
android:inputType="datetime"
android:inputType="date"--日期键盘

android:inputType="time"--时间键盘

这样一来,我们就可以对其进行控制了,是不是很好使啊!

老于始终坚信

没有做不到的,只有想不到了。

 java代码下载地址:http://download.csdn.net/detail/androidstarjack/8815693

最后附上自己的博客地址:老于的博客

http://blog.csdn.net/androidstarjack

欢迎大家与老于一起进行探究和学习