最近在做电商类的项目,由于需求的不断变动,在有关输如文本框的地方,要求弹出软键盘,如果界面很多的下,则需要些很多代码,在空闲的时候,写了一个软键盘管理类,很好使,自己写的,亲自试过,这是一个软键盘控制单例模式实现的。
代码如下:
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"--时间键盘
这样一来,我们就可以对其进行控制了,是不是很好使啊!
老于始终坚信:
欢迎大家与老于一起进行探究和学习