2015-01-03 2 views
2

enter image description hereКак переопределить кнопку включения клавиатуры?

Я хочу, чтобы мой невидимый EditText, когда пользователь закрывает клавиатуру вниз кнопку ..

Try -1

я попробовал KeycodeBack, но это не работает

@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) { 
    if (keyCode == KeyEvent.KEYCODE_BACK) { 


     MainActivity.editText2.setVisibility(View.INVISIBLE) ; 

     return true; 
    } 

    return super.onKeyDown(keyCode, event); 
} 

Попробуйте -2

Я пробовал на editorActionListener но также не полезно

editText2.setOnEditorActionListener(new TextView.OnEditorActionListener() { 
      @Override 
      public boolean onEditorAction(TextView v, int actionId, KeyEvent event) { 
       boolean handled = false; 

       if (actionId == EditorInfo.IME_ACTION_DONE ||event.getKeyCode() == KeyEvent.KEYCODE_BACK||event.getAction()==KeyEvent.KEYCODE_ENTER 
         ) { 
MainActivity.editText2.setVisibility(VISIBLE); 

       } 
       return handled ; 
      } 
     }); 

но Event всегда null.

+0

попытаться увидеть http://stackoverflow.com/questions/27721709/prevent-softkeyboard-dismiss-on-the-android-back-button-press/27721774#27721774 –

ответ

1

В вашей деятельности вы можете поймать это событие

@Override 
public void onConfigurationChanged(Configuration newConfig) { 
    super.onConfigurationChanged(newConfig); 


    // Checks whether a hardware keyboard is available 
    if (newConfig.hardKeyboardHidden == Configuration.HARDKEYBOARDHIDDEN_NO) { 
     Toast.makeText(this, "keyboard visible", Toast.LENGTH_SHORT).show(); 
    } else if (newConfig.hardKeyboardHidden == Configuration.HARDKEYBOARDHIDDEN_YES) { 
     Toast.makeText(this, "keyboard hidden", Toast.LENGTH_SHORT).show(); 
    } 
} 

И в манифесте следует добавить эти изменения в configchages.

<activity 
     android:configChanges = "keyboard|keyboardHidden" // and if you have any other config changes. 
Смежные вопросы