zoukankan      html  css  js  c++  java
  • 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;
              
          }
    }
  • 相关阅读:
    《机器学习》第二次作业——第四章学习记录和心得
    机器学习一到三章笔记
    [ML] 第四章学习总结
    [CV] Mnist手写数字分类
    ModelArts (华为GPU/CPU计算云平台)体验
    [DataSturcture] 红黑树求逆序对
    [CV] 边缘提取和角点判断
    [CV] 灰度共生矩阵
    [DataStructure] AC 自动机(Aho–Corasick Automata)
    [GIT] 如何删除git上保存的文件(包含历史文件)
  • 原文地址:https://www.cnblogs.com/LIANQQ/p/3573983.html
Copyright © 2011-2022 走看看