Reputation: 794
I implemented an override to the back button key in the device. now for some reason the method onKey never execute and there fore when i click on the back button the application is minimize to the back instead doing the onKey code. i am not sure what is the problem so i will upload my all code.
This is my code:
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
getView().setFocusableInTouchMode(true);
getView().requestFocus();
getView().setOnKeyListener(new View.OnKeyListener() {
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
if (event.getAction() == KeyEvent.ACTION_DOWN) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
String frag_name = getFragmentManager().getBackStackEntryAt(getFragmentManager().getBackStackEntryCount() - 1).getName();
Log.d("frag name is", frag_name);
Fragment fragment = null;
switch (frag_name){
case "back_to_attending":
fragment = new AttendingListFragmentController();
break;
case "back_to_invitations":
fragment = new InvitationsFragmentController();
break;
case "waiting_list":
fragment = new WaitingEventListFragmentController();
break;
default:
break;
}
if(fragment != null){
FragmentManager fragmentManager = getFragmentManager();
fragmentManager.popBackStackImmediate();
fragmentManager.beginTransaction().replace(R.id.content_frame, fragment,frag_name).addToBackStack(frag_name).commit();
}
}
}
return false;
}
});
}
Upvotes: 0
Views: 278
Reputation: 649
Try this:
public class MyClass implements OnKeyListener {
...
Then override the method onKey
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
//do what you want
return false;
}
Upvotes: 1