天天看點

Android InputMethod(輸入法)

  1. 基于窗體打開輸入法
/**
   * 基于窗體打開輸入法
   */
  @OnClick(R.id.btn_open_window) public void onOpenWindow(){
    InputMethodManager inputMethodManager =
        (InputMethodManager) getSystemService(INPUT_METHOD_SERVICE);
    inputMethodManager.showSoftInput(getWindow().getDecorView(), InputMethodManager.SHOW_FORCED);
  }
           
/**
   * 基于窗體關閉輸入法
   */
  @OnClick(R.id.btn_close_window) public void onCloseWindow(){
    InputMethodManager inputMethodManager =
        (InputMethodManager) getSystemService(INPUT_METHOD_SERVICE);
    inputMethodManager.hideSoftInputFromWindow(getWindow().getDecorView().getWindowToken(), 0);
  }
           
  1. 基于窗體自動打開關閉輸入法
/**
   * 基于窗體自動打開關閉輸入法
   */
  @OnClick(R.id.btn_toggle_window) public void onToggleWindow(){
    InputMethodManager inputMethodManager =
        (InputMethodManager) getSystemService(INPUT_METHOD_SERVICE);
    inputMethodManager.toggleSoftInputFromWindow(getWindow().getDecorView().getWindowToken(),
        0, 0);
  }
           
  1. 打開或關閉輸入法, 與基于窗體的差別在于它無法關閉基于窗體打開的輸入法
/**
   * 打開或關閉輸入法, 與基于窗體的差別在于它無法關閉基于窗體打開的輸入法
   */
  @OnClick(R.id.btn_toggle) public void onToggle(){
    InputMethodManager inputMethodManager =
        (InputMethodManager) getSystemService(INPUT_METHOD_SERVICE);
    inputMethodManager.toggleSoftInput(0, InputMethodManager.HIDE_NOT_ALWAYS);
  }
           

繼續閱讀