我在做页面时自己做了一组按键和一个文本框,我想让在点击文本框时不弹出安卓系统自带的
输入法或者是能把系统自带的输入法盖到我做的按键下面,补充一点我用的是TableLayout布局做的按钮
里面套TableRow在套button。
------解决方案--------------------
在点击文本框时不弹出安卓系统自带的输入法,有两种方法:
1、重写EditText的onFocusChanged方法,就是在点击的时候隐藏输入法。
@Override
protected void onFocusChanged(boolean focused, int direction, Rect previouslyFocusedRect) {
super.onFocusChanged(focused, direction, previouslyFocusedRect);
final InputMethodManager imm = ((InputMethodManager) getContext()
.getSystemService(Context.INPUT_METHOD_SERVICE));
if (imm != null && imm.isActive(this)) {
imm.hideSoftInputFromWindow(getApplicationWindowToken(), 0);
}
}
————这个方法有点弊端,有时候点击后输入法会闪现一下。
2、需要用到反射,调用EditText的setShowSoftInputOnFocus(false)方法,因此这个方法是sdk隐藏的。
Method method;
try {
method = Class.forName("android.view.EditText").getMethod("setShowSoftInputOnFocus"
, Boolean.class);
boolean show = false;
method.invoke(this.getClass(), show);
} catch (NoSuchMethodException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalArgumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InvocationTargetException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
楼主试试!