Search code examples
javaandroidswitch-statementonbackpressed

using switch statement to handle onBackPressed() in fragments


i am trying to handle the onBackPressed diferently for every fragment. for this i want to use a switch statement with cases dependedn on the fragment that is currently showing. in my Main i have. but dont know what to use in the switchstatement.

public class MyActivity extends Activity
{
    @Override
    public void onBackPressed(){
        super.onBackPressed();
switch(........){
        case (1):
        Fragment1.onBackPressed();
        case (2):
        Fragment2.onBackPressed();
    }
}

in my fragments:

public class Fragment1 extends Fragment
{
    //My created method
    public static void onBackPressed()
    {
        // make it do what you want.
    }
}

so my question, how can i use a switchstament where de cases are depended on what fragment is showing at this moment.


Solution

  • Don't use such switch in single onBackpressed of activity but you can get the key event of each fragment object and do like this,

    fragment.getView().setFocusableInTouchMode(true); //Don't miss this line
    fragment.getView().setOnKeyListener( new OnKeyListener()
    {
        @Override
        public boolean onKey( View v, int keyCode, KeyEvent event )
        {
            if( keyCode == KeyEvent.KEYCODE_BACK )
            {
               //Do what you want
                return true;
            }
            return false;
        }
    } );