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

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

时间: 2024-08-27 08:21:34

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

Android软键盘强制弹出,隐藏输入法.

本文实例讲述了Android实现弹出键盘代码,是一个非常实用的功能.代码非常简洁.分享给大家供大家参考. 具体功能代码如下: ? 1 2 3 4 5 6 7 8 Timer timer = new Timer(); timer.schedule(new TimerTask() {  @Override  public void run() {  InputMethodManager m = (InputMethodManager) editText.getContext().getSystemS

Android 另类方法监听软键盘的弹出收起事件

http://www.cnblogs.com/csonezp/p/5065624.html 最近做的项目碰到个问题,a界面是fragment+recyclerview,b界面带个edittext,并且会自动获得焦点弹出软键盘.由a界面进入b界面,再结束b界面返回a界面,就会在a界面上留下一片和软键盘大小相同的灰色区域,具体原因搞了很久也不清楚.但是问题总是要解决的,我在a的fragment上折腾了半天,始终没什么用.然后就想着在b界面折腾折腾,关闭activity的时候先收起挼键盘,软键盘收起完

判断软键盘的弹出

未弹出软键盘时的布局,很简单,只有一个webview加一个底部bar,底部bar由一个linearlayout包含四个button组成. 当布局中有webview时,点击webview上的输入框,会有软键盘弹出以输入文字. 问题:此时,如果布局含有底部bar,底部bar会被软键盘托起.如下图所示: 解决方式: 使用  RelativeLayout.getViewTreeObserver().addOnGlobalLayoutListener(listener);监听软键盘是否弹出,在弹出时隐藏底

关于ios8模拟器不能输入中文问题以及软键盘不弹出问题

在Xcode菜单栏中   Product->scheme->Edit Scheme->Options->Application Region改为中国,就可以输入中文了, 如果软键盘不弹出,则按shift+command+k,因为ios8外置键盘和软键盘只支持一个.

android 软键盘自动弹出和关闭

 一.布局中软键盘自动弹出 bargain_dialog_offer_edit.requestFocus(); bargain_dialog_offer_edit.setFocusable(true); InputMethodManager imm = (InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE); imm.showSoftInputFromInputMethod(bargain_dialo

Android通过监听最外层布局的改变监听键盘的状态,软键盘的弹出和收起都会改变外层布局(前提是把Activity的mode设置成压缩);

最外层布局.addOnLayoutChangeListener(new OnLayoutChangeListener() { @Override public void onLayoutChange(View arg0, int arg1, int arg2, int arg3, int arg4, int arg5, int arg6, int arg7, int arg8) { // TODO Auto-generated method stub if(EditText.hasFocus()

完美解决android软键盘监听

最近在做应用性能调优,发现在一个包含有输入框的Activity中,当软键盘弹出的时候,如果直接finish掉此Activity,那么在返回到上一个Activity时,界面的渲染会由于软键盘没有及时的收起而出现卡顿的情况. 很不友好. 于是,本着geek的精神,做就做到极致,就尝试着对这一块做优化. 借助网上一些知识的分享,同时结合自己的理解,最终应用到项目中. 直接上代码.. 首先,在manifest文件中声明此Activity的windowSoftInputMode属性, 1 android:

完美解决android软键盘监听1

最近在做应用性能调优,发现在一个包含有输入框的Activity中,当软键盘弹出的时候,如果直接finish掉此Activity,那么在返回到上一个Activity时,界面的渲染会由于软键盘没有及时的收起而出现卡顿的情况. 很不友好. 于是,本着geek的精神,做就做到极致,就尝试着对这一块做优化. 借助网上一些知识的分享,同时结合自己的理解,最终应用到项目中. 直接上代码.. 首先,在manifest文件中声明此Activity的windowSoftInputMode属性,      andro

Android软键盘遮挡的四种解决方案

问题概述 在编辑框输入内容时会弹出软键盘,而手机屏幕区域有限往往会遮住输入界面,我们先看一下问题效果图: 输入用户名和密码时,系统会弹出键盘,造成系统键盘会挡住文本框的问题,如图所示: 输入密码时输入框被系统键盘遮挡了,大大降低了用户操作体验,这就是开发中非常常见的软键盘遮挡的问题,该如何解决? 简单解决方案  方法一 在你的activity中的oncreate中setContentView之前写上这个代码 getWindow().setSoftInputMode(WindowManager.L