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().getSystemService(Context.INPUT_METHOD_SERVICE);

 m.toggleSoftInput(0, InputMethodManager.HIDE_NOT_ALWAYS);

 }

}, 300);

希望本文所述对大家Android程序设计的学习有所帮助。

其他

当我们弹出一个Dialog时候,如果这个Dialog需要输入数据,然后确定后又需要关闭输入法,一般系统的hide,跟show方法总会有各种问题,最霸道的解决方法就是写一个定时器,定时弹出或者关闭输入法。

import java.util.Timer;
import java.util.TimerTask;
import android.content.Context;
import android.view.View;
import android.view.inputmethod.InputMethodManager;
import android.widget.EditText;

public class InputTools {

//隐藏虚拟键盘
      public static void HideKeyboard(View v)
      {
          InputMethodManager imm = ( InputMethodManager ) v.getContext( ).getSystemService( Context.INPUT_METHOD_SERVICE );     
        if ( imm.isActive( ) ) {     
            imm.hideSoftInputFromWindow( v.getApplicationWindowToken( ) , 0 );   
            
        }    
      }
      
      //显示虚拟键盘
      public static void ShowKeyboard(View v)
      {
          InputMethodManager imm = ( InputMethodManager ) v.getContext( ).getSystemService( Context.INPUT_METHOD_SERVICE );     
        
        imm.showSoftInput(v,InputMethodManager.SHOW_FORCED);    
    
      }
      
      //强制显示或者关闭系统键盘
      public static void KeyBoard(final EditText txtSearchKey,final String status)
      {
           
          Timer timer = new Timer();
        timer.schedule(new TimerTask(){
        @Override
        public void run()
        {
            InputMethodManager m = (InputMethodManager)
            txtSearchKey.getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
             if(status.equals("open"))
             {
                 m.showSoftInput(txtSearchKey,InputMethodManager.SHOW_FORCED); 
             }
             else
             {
                 m.hideSoftInputFromWindow(txtSearchKey.getWindowToken(), 0); 
             }
         }  
         }, 300);
       }
      
      //通过定时器强制隐藏虚拟键盘
      public static void TimerHideKeyboard(final View v)
      {
          Timer timer = new Timer();
        timer.schedule(new TimerTask(){
        @Override
        public void run()
        {
            InputMethodManager imm = ( InputMethodManager ) v.getContext( ).getSystemService( Context.INPUT_METHOD_SERVICE );     
            if ( imm.isActive( ) )
            {     
                imm.hideSoftInputFromWindow( v.getApplicationWindowToken( ) , 0 );
            }    
         }  
        }, 10);
       }
      //输入法是否显示着
      public static boolean KeyBoard(EditText edittext)
      {
          boolean bool = false;
          InputMethodManager imm = ( InputMethodManager ) edittext.getContext( ).getSystemService( Context.INPUT_METHOD_SERVICE );     
        if ( imm.isActive( ) )
        {     
           bool = true; 
        }    
        return bool;
          
      }
}

时间: 2024-10-19 05:55:52

Android软键盘强制弹出,隐藏输入法.的相关文章

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

最近在做电商类的项目,由于需求的不断变动,在有关输如文本框的地方,要求弹出软键盘,如果界面很多的下,则需要些很多代码,在空闲的时候,写了一个软键盘管理类,很好使,自己写的,亲自试过,这是一个软键盘控制单例模式实现的. 代码如下: package com.okdi.ilife.activity.login; import android.app.Activity; import android.content.Context; import android.view.View; import an

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 软键盘的显示与隐藏问题的研究

在android中,常常会和输入法的软件键盘交互.在Manifest文件中,系统给activity的一个属性-windowSoftInputMode来控制输入法的显示方式. 该属性提供了Activity的window与软键盘的window交互的方式.这里的属性设置有双方面的影响: 1.软键盘的显示与隐藏.-当Activity界面成为用户的焦点时,或隐藏或显示. 2. 对Activty的主window窗体进行调整.或者将Activity的window窗体调小以便为软键盘腾出空间,或者当Activi

android 安卓editext默认弹出英文输入法,只能输入英文与数字

       /**          * 只能输入字母和数字,默认弹出英文输入法          */         editext.setKeyListener(new DigitsKeyListener() {             @Override             public int getInputType() {                 return InputType.TYPE_TEXT_VARIATION_PASSWORD;             }

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()

根据键盘的弹出隐藏自动调整View的位置

1.首先注册系统通知     //监听键盘通知     [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillChangeFrameNotification:) name:UIKeyboardWillChangeFrameNotification object:nil]; 2.键盘将要改变时的相应处理 -(void)keyboardWillChangeFrameNotificat