有些时候我们的应用需要在EditText聚焦时自动弹出输入法,或者隐藏输入法,关于输入法弹出,一般不会有什么问题。但是,有一些情况输入法是没发自动弹出的,比如弹出的对话框里有edittext,介绍一些常用的用法。

一,配置AndroidManifest文件

通用做法,在有edittext的activity中,配置
android:windowSoftInputMode,让输入法自动调节大小。
比如登录界面,有两个EditText和按钮,当用户点击输入用户名时,自动弹出输入法,将布局顶上去,adjustResize可以让输入法不遮住edittext输入框。

 <activity    android:name="com.oair.oair_client.LoginActivity"    android:label="@string/title_activity_login"    android:launchMode="singleTask"    android:screenOrientation="portrait"    android:configChanges="keyboardHidden|orientation"    android:windowSoftInputMode="adjustResize"/>

三,设置activity启动的时候输入法默认不开启

activity启动的时候,editext不聚焦,输入法是不会弹出的,输入的时候点击就会弹出输入法。
也可以在onCreate方法中,设置:

getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);

三,对话框有EditText,强制显示输入法

弹出的对话框里有edittext,show方法与输入法的现实可能会冲突,没发自动弹出的,所以可以这样:

//显示对话框之后,用handler延时显示输入法dialog_rename.show();        new Handler().postDelayed(new Runnable() {            @Override            public void run() {               showInputMethod();            }        },100);    }    private void showInputMethod() {        //自动弹出键盘        InputMethodManager inputManager = (InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE);        inputManager.toggleSoftInput(0, InputMethodManager.HIDE_NOT_ALWAYS);        //强制隐藏Android输入法窗口        // inputManager.hideSoftInputFromWindow(edit.getWindowToken(),0);    }

四,输入法相关方法

/** * 显示键盘 * @param context * @param view */public static void showInputMethod(Context context, View view) {        InputMethodManager im = (InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE);        im.showSoftInput(view, 0);} //隐藏虚拟键盘 public static void HideKeyboard(View v){          InputMethodManager imm = ( InputMethodManager) v.getContext( ).getSystemService(Context.INPUT_METHOD_SERVICE);             if (imm.isActive()) {                 imm.hideSoftInputFromWindow( v.getApplicationWindowToken() , 0 );               }    }

总结

应用起来比较简单,不再赘述。也可以配置EditText,设置是否获得焦点,清除焦点:edit.clearFocus();
EditText不弹出软件键盘:
edit.setInputType(InputType.TYPE_NULL);
activity默认弹出输入法:
android:windowSoftInputMode="stateVisible|adjustPan"
欢迎交流,杜乾,Dusan,Q 291902259。

更多相关文章

  1. afinal logoAndroid的快速开发框架 afinal
  2. Android自定义对话框Dialog以及主题和样式
  3. Android中弹出对话框的实现
  4. OnClick与android:focusableInTouchMode="true"
  5. Android开发实例详解之IMF(Android(安卓)SDK Sample—SoftKeyboar
  6. Android(安卓)Alert Dialog解决点击按钮对话框不关闭的问题
  7. android中的键盘处理
  8. 我的android开发之路
  9. 解决AndroidStudio连不上Android设备真机的问题

随机推荐

  1. Android(安卓)Studio官方文档之使用Lint
  2. Drawable的Tint变色(让Android也能有iOS那
  3. Android处理服务器Openssl生成的RSA加解
  4. android中媒体扫描服务mediaScannerServi
  5. Android各种屏幕适配原理
  6. 针对网上流传的"Android(安卓)再按一次后
  7. Android学习小Demo(14)Android中关于PopupW
  8. Android布局中使用的@、@+、?和*的详细描述
  9. Android(安卓)TouchEvent 分发流程
  10. Android(安卓)surfaceflinger (4) -Vsync