2015-09-26 42 views
0

我无法为此问题找到完美的解决方案。 我想在用户开始滚动建议列表时隐藏键盘。为什么我的AutoCompleteTextView建议列表隐藏在键盘后面?

我想这一点,但它并不能帮助

adapter = new ArrayAdapter<String>(getContext(), android.R.layout.simple_dropdown_item_1line, list_of_Cities) { 
      @Override 
      public View getView(int position, View convertView, ViewGroup parent) { 

       View v = super.getView(position, convertView, parent); 

       v.setOnTouchListener(new View.OnTouchListener() { 

        @Override 
        public boolean onTouch(View v, MotionEvent event) { 
         View view = activity.getCurrentFocus(); 
         if (event.getAction() == MotionEvent.ACTION_DOWN) { 
          InputMethodManager imm = (InputMethodManager) activity 
            .getSystemService(
              Context.INPUT_METHOD_SERVICE); 
          imm.hideSoftInputFromWindow(
            view.getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS); 
         } 

         return true; 
        } 
       }); 
       return v; 

      } 
     }; 

的onTouch方法被执行,但键盘不隐藏。 :(

回答

0

尝试onItemClickListener

v.setOnItemClickListener(new OnItemClickListener() { 

     @Override 
     public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) { 
     InputMethodManager in = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); 
     in.hideSoftInputFromWindow(arg1.getWindowToken(), 0); 

     } 

    }); 
+0

但是当我选择的项目之一,这只会工作。 我想它的时候我开始向下滚动列表中隐藏 – Panda