码迷,mamicode.com
首页 > 移动开发 > 详细

Android--EditText自动弹出输入法

时间:2015-11-15 12:09:51      阅读:280      评论:0      收藏:0      [点我收藏+]

标签:

一、打开输入法窗口

1.EditText 启动activity的时候弹出软件键盘   XML文件中配置

manifest对应的Activity的配置,将EditText设置属性 android:windowSoftInputMode=stateVisible,在进入这个页面的时候,默认弹出输入法。

<activity android:name=".ui.login"
  android:configChanges="orientation|keyboardHidden|locale"
  android:screenOrientation="portrait"
  android:windowSoftInputMode="stateVisible|adjustPan" >
</activity>

 

 

2、XML中设置windowSoftInputMode属性为adjustUnspecified|stateHidden

3、

  1. EditText titleInput = (EditText) findViewById(R.id.create_edit_title); 
  2. titleInput.setFocusable(true); 
  3. titleInput.requestFocus(); 
  4. onFocusChange(titleInput.isFocused()); 

final boolean isFocus = hasFocus; 
(
new Handler()).postDelayed(new Runnable() {     public void run() {       InputMethodManager imm = (InputMethodManager)titleInput.getContext().getSystemService(Context.INPUT_METHOD_SERVICE);       if(isFocus) {         imm.toggleSoftInput(0, InputMethodManager.HIDE_NOT_ALWAYS);       } else {         imm.hideSoftInputFromWindow(titleInput.getWindowToken(),0);       }

 

二、隐藏输入法窗口

2.强制隐藏Android输入法窗口

EditText edit=(EditText)findViewById(R.id.edit);
InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(edit.getWindowToken(),0); 

2、EditText始终不弹出软件键盘

EditText edit=(EditText)findViewById(R.id.edit); 
edit.setInputType(InputType.TYPE_NULL);  

 

 

①在布局文件中,在EditText前面放置一个看不到的LinearLayout,让他率先获取焦点:

<LinearLayout 
  android:focusable="true" 
  android:focusableInTouchMode="true" 
  android:layout_width="0px" 
  android:layout_height="0px"/>  

 

 

属性android:inputType:指定输入法的类型,int类型,可以用|选择多个。取值可以参考:android.text.InputType类。取值包括:text,textUri,phone,number,等.

焦点的获取:
titleInput.setFocusable(true); 
titleInput.requestFocus();  

 

焦点的取消:
edit.setFocusable(false); 
或者
edit.clearFocus();

 




四:关于经常调用的处理软键盘的函数如下:

1、打开输入法窗口:

  1. InputMethodManager inputMethodManager = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); 
  2. // 接受软键盘输入的编辑文本或其它视图 
  3. imm.showSoftInput(submitBt,InputMethodManager.SHOW_FORCED);  

2、关闭出入法窗口

  1. InputMethodManager inputMethodManager = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); 
  2. inputMethodManager.hideSoftInputFromWindow(OpeListActivity.this.getCurrentFocus().getWindowToken(), 
  3. InputMethodManager.HIDE_NOT_ALWAYS); 
  4. //接受软键盘输入的编辑文本或其它视图 
  5. inputMethodManagerwww.2cto.com 
  6. .showSoftInput(submitBt,InputMethodManager.SHOW_FORCED);  

3、如果输入法打开则关闭,如果没打开则打开

  1. InputMethodManager m=(InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); 
  2. m.toggleSoftInput(0, InputMethodManager.HIDE_NOT_ALWAYS);  

4、获取输入法打开的状态

  1. InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE); 
  2. boolean isOpen=imm.isActive();  

isOpen若返回true,则表示输入法打开










 

Android--EditText自动弹出输入法

标签:

原文地址:http://www.cnblogs.com/zrui513/p/4966280.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!