• android显示和隐藏软键盘(转)


    显示键盘:
    EditText editText.setFocusable(true);
    editText.setFocusableInTouchMode(true);
    editText.requestFocus();
    InputMethodManager inputManager = (InputMethodManager)editText.getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
    inputManager.showSoftInput(editText, 0);

    首先要对指定的输入框请求焦点。然后调用输入管理器弹出软键盘。

    警告:对于刚跳到一个新的界面就要弹出软键盘的情况上述代码可能由于界面为加载完全而无法弹出软键盘。此时应该适当的延迟弹出软键盘如998毫秒(保证界面的数据加载完成)。实例
    [代码]java代码:

    Timer timer = new Timer();
    timer.schedule(new TimerTask(){
    public void run(){
    InputMethodManager inputManager = (InputMethodManager)editText.getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
    inputManager.showSoftInput(editText, 0);
    }
    }, 998);

    隐藏键盘:

    方法二:
    让EditText失去焦点,使用EditText的clearFocus方法
    例如:EditText edit=(EditText)findViewById(R.id.edit);
    edit.clearFocus();
    方法三:
    强制隐藏Android输入法窗口
    例如:EditText edit=(EditText)findViewById(R.id.edit);
    InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
    imm.hideSoftInputFromWindow(edit.getWindowToken(),0);
    警告:对于刚跳到一个新的界面就要弹出软键盘的情况上述代码可能由于界面为加载完全而无法关闭软键盘。此时应该适当的延迟弹出软键盘如998毫秒
    Timer timer = new Timer();
    timer.schedule(new TimerTask(){
    public void run(){
    EditText edit=(EditText)findViewById(R.id.edit);
    InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
    imm.hideSoftInputFromWindow(edit.getWindowToken(),0);
    }
    }, 998);
    方法四:EditText始终不弹出软件键盘
    例:EditText edit=(EditText)findViewById(R.id.edit);
    edit.setInputType(InputType.TYPE_NULL);

    转自

  • 相关阅读:
    java多线程基本概述(三)——同步块
    java多线程基本概述(三)——同步方法
    java多线程基本概述(二)——Thread的一些方法
    java多线程基本概述(一)——线程的基本认知
    【linux命令】时间
    【tips】linux中单双引号,单双括号与反引号的区别
    【每天一个linux命令】wget
    【每天一个linux命令】cut
    【每天一个linux命令】du
    【每天一个linux命令】grep
  • 原文地址:https://www.cnblogs.com/YangBinChina/p/6397762.html
Copyright © 2020-2023  润新知