我想在屏幕上实现这样的功能
当我点击非编辑区时 键盘自动隐藏
点击EditText文本框时键盘显示
怎样实现

解决方案 »

  1.   

    设置edittext的焦点丢失事件不知道可以满足你么?你要的是点击就消失还是随着焦点消失就消失呢。点击就消失的话估计难办
      

  2.   

    就是想点击除了EditText框以外的地方就隐藏
    就是点击空白的地方键盘就隐藏
    有办法实现吗
      

  3.   

    隐藏软键盘的代码为:
    InputMethodManager imm = (InputMethodManager)popwindw.this.getSystemService(INPUT_METHOD_SERVICE);
    imm.toggleSoftInput(InputMethodManager.HIDE_IMPLICIT_ONLY, InputMethodManager.HIDE_NOT_ALWAYS);  如果你的画面只有一个edittext,这样就好办了
    重写activity的ontouch接口,当收到touch事件,就调用上面的代码,
    软键盘就消失了。
      如果你的画面比较复杂的话,感觉就不太好办了,因为点击控件的时候,activity是收不到touch事件的
    这个还不知道该如何更好的解决。
    ps:
    本人新人,说的不对还望见谅。
      

  4.   


    public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
            .......       this.getWindow().getDecorView().setOnTouchListener(new OnTouchListener(){
    @Override
    public boolean onTouch(View v, MotionEvent event)
    {
    // 隐藏软键盘
    ((InputMethodManager) getSystemService(INPUT_METHOD_SERVICE))
    .hideSoftInputFromWindow(v.getWindowToken(),
    InputMethodManager.HIDE_NOT_ALWAYS);
    return false;
    }
            });
        }
      

  5.   

    个人建议可以加线程
     public void openKeyboard(final EditText ed) {
    Timer timer = new Timer();
    timer.schedule(new TimerTask() {
    @Override
    public void run() {
    InputMethodManager m = (InputMethodManager) ed.getContext()
    .getSystemService(Context.INPUT_METHOD_SERVICE);
    m.toggleSoftInput(0, InputMethodManager.HIDE_NOT_ALWAYS);
    }
    }, 150);
    }
      

  6.   

    泪奔啊,貌似还是Android第一贴不过算鸟,正在狂塞Android的东东,Android区近期会比较常混的