19

When I'm using "EditText" I have the virtual keyboard.

Pressing first time "Back" button hides the keyboard. Second press invokes "onBackPressed" callback in my activity. OK, but...

I have no idea how to hook the very first press. I need to process input data as soon as the virtual keyboard dismissed.

Any ideas are welcome.

Thanks.

OGP
  • 950
  • 2
  • 11
  • 26
  • You may want to look into this link. [http://stackoverflow.com/a/28719420/4432143][1] [1]: http://stackoverflow.com/a/28719420/4432143 – Alican Temel Aug 10 '15 at 08:16
  • Yep, the question is 4 years as outdated. Thanks anyway. – OGP Aug 11 '15 at 06:05
  • IS it related to the newest Oreo? I'm no more working with Android for few years and only can recommend to check the solutions from below. As the last resort consult the AOSP sources. Sometimes it can help. – OGP Nov 08 '17 at 05:37

2 Answers2

22

You can override when the keyboard disappears using this method:

  public boolean onKeyPreIme(int keyCode, KeyEvent event) {
   if (keyCode == KeyEvent.KEYCODE_BACK && 
       event.getAction() == KeyEvent.ACTION_UP) {
           // Do your thing here
           return false;
   }
   return super.dispatchKeyEvent(event);
  }

Taken from my other answer @ : Android: Error popup on EditText doesn't move down when keyboard goes away

Community
  • 1
  • 1
Blundell
  • 75,855
  • 30
  • 208
  • 233
0

Custom Back Button:-

final RelativeLayout rrBack = (RelativeLayout) mCustomView.findViewById(R.id.rr_back);
        rrBack.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {

                MyApplication.getInstance().getRequestQueue().cancelAll(FEED_DETAIL_TAG_REQUEST);
                InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
                imm.hideSoftInputFromWindow(rrBack.getWindowToken(), 0);

            }
        });
InsaneCat
  • 2,115
  • 5
  • 21
  • 40