我在做页面时自己做了一组按键和一个文本框,我想让在点击文本框时不弹出安卓系统自带的
输入法或者是能把系统自带的输入法盖到我做的按键下面,补充一点我用的是TableLayout布局做的按钮
里面套TableRow在套button。

解决方案 »

  1.   

    不弹出就在mainfestive里面收起来就行了啊,不明白你想说什么
      

  2.   

    文本框是EditText?android:focusable="false"加上这个属性就可以了
      

  3.   

    在点击文本框时不弹出安卓系统自带的输入法,有两种方法:
    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();
            }
    楼主试试!