androidandroid-custom-viewkeylistener

How to handle back button press in Custom View in android?


 relativeLayout.setOnKeyListener(new View.OnKeyListener() {
            @Override
            public boolean onKey(View v, int keyCode, KeyEvent event) {                
                if( keyCode == KeyEvent.KEYCODE_BACK) {               
                       do....something                   
                }
                return false;
            }

}

This code is not working. When I press on backbutton, It doesn't shows any response. Please anyone help me. Thanks in advance ......


Solution

  • You are almost there, but this is exaclty what you need to do.

    relativeLayout.setFocusableInTouchMode(true);
    relativeLayout.requestFocus();
    relativeLayout.setOnKeyListener(new View.OnKeyListener() {
        @Override
        public boolean onKey(View v, int keyCode, KeyEvent event) {
    
             if (event.getAction() == KeyEvent.ACTION_UP && keyCode == KeyEvent.KEYCODE_BACK) {
                    if(You have handled the back press in your View){ return true; }
                    return false;
            }
        });