方式一:
- /** 输入法软键盘屏蔽,有光标*/
- private void srfpb(EditText text) {
- if (android.os.Build.VERSION.SDK_INT <= 10) {//4.0以下
- text.setInputType(InputType.TYPE_NULL);
- } else {
- getWindow().setSoftInputMode(
- WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
- try {
- Class<EditText> cls = EditText.class;
- Method setSoftInputShownOnFocus;
- setSoftInputShownOnFocus = cls.getMethod(
- "setSoftInputShownOnFocus", boolean.class);
- setSoftInputShownOnFocus.setAccessible(true);
- setSoftInputShownOnFocus.invoke(text, false);
- } catch (Exception e) {
- e.printStackTrace();
- }
- try {
- Class<EditText> cls = EditText.class;
- Method setShowSoftInputOnFocus;
- setShowSoftInputOnFocus = cls.getMethod(
- "setShowSoftInputOnFocus", boolean.class);
- setShowSoftInputOnFocus.setAccessible(true);
- setShowSoftInputOnFocus.invoke(text, false);
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- }
如果是android4.0以下,那么
<span style="font-size:12px;">editText.setInputType(InputType.TYPE_NULL);</span>
就够了,android4.0以上屏蔽软键盘并且有光标,需要用到。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
if (android.os.Build.VERSION.SDK_INT <= 10 ) { //4.0以下 danielinbiti
editText.setInputType(InputType.TYPE_NULL);
} else {
this .act.getWindow().setSoftInputMode(
WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
try {
Class<EditText> cls = EditText. class ;
Method setShowSoftInputOnFocus;
setShowSoftInputOnFocus = cls.getMethod( "setShowSoftInputOnFocus" ,
boolean . class );
setShowSoftInputOnFocus.setAccessible( true );
setShowSoftInputOnFocus.invoke(editText, false );
} catch (Exception e) {
e.printStackTrace();
}
}
|
方式三:
1、方法一(如果输入法在窗口上已经显示,则隐藏,反之则显示)
2、方法二(view为接受软键盘输入的视图,SHOW_FORCED表示强制显示)
3、调用隐藏系统默认的输入法
4、获取输入法打开的状态