2013-02-11 2 views
1

У меня есть EditText, и мне нужно его потерять фокус и заставить клавиатуру исчезнуть, когда пользователь нажимает «Готово» на клавиатуре. Мой код выглядит:Android - EditText не позволит клавиатуре исчезнуть

etFromCustom.setOnEditorActionListener(new OnEditorActionListener() { 
    @Override 
    public boolean onEditorAction(TextView v, int actionId, KeyEvent event) { 
     if (actionId == EditorInfo.IME_ACTION_DONE) { 
      ((LinearLayout) findViewById(R.id.linlay_dummy)).requestFocus(); //this is what I have to do - send focus to a dummy layout 
      return true; 
     }    
     return false; 
    } 
}); 

Я знаю, что, по умолчанию, «Готово» на клавиатуре скрывает виртуальную клавиатуру, но так как я отменяю его это больше не работает: EditText действительно теряет фокус, но клавиатура вместо исчезновения просто превращается из числового в qwerty.

ответ

1

Попробуйте это,

Добавить этот код в свой xml. в частности, EditText в файле xml.

android:imeOptions="actionDone" 
+0

Это был уже установлен в файле XML. – whatyouhide

+0

InputMethodManager inputManager = (InputMethodManager) getSystemService (Context.INPUT_METHOD_SERVICE); \t \t inputManager.hideSoftInputFromWindow ( \t \t \t \t getCurrentFocus() getWindowToken(), \t \t \t \t InputMethodManager.HIDE_NOT_ALWAYS.); используйте этот код для исчезновения клавиатуры – MuraliGanesan

0

попробуйте следующий код

положить в создании активности

private InputMethodManager imm; 
imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); 



DoneButton.setOnClickListener(new View.OnClickListener() { 

     public void onClick(View v) { 
      // TODO Auto-generated method stub 
      try { 
      // yourEditTextView.setText(""); 

       imm.hideSoftInputFromWindow(
         searchEditTextView.getWindowToken(), 0); 
      } catch (Exception e) { 
       e.printStackTrace(); 
      } 
     } 
    }); 
Смежные вопросы