I need to show alert with yes no button on back key press for logout module. I know the onKeyDown() method. I have written code
Boolean bLogout=false,bTemp=false;
private void showLogoutDialog(final int keyCode, final KeyEvent event)
{
AlertDialog.Builder builder = new AlertDialog.Builder(TaskList.this);
builder.setMessage("Do you want to logout?")
.setTitle("test")
.setCancelable(true)
.setPositiveButton("Yes", new DialogInterface.OnClickListener()
{
public void onClick(DialogInterface dialog, int id) {
bLogout=false;
bTemp=true;
onKeyDown(keyCode, event);
}
}).setNegativeButton("No", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
dialog.cancel();
bTemp=true;
bLogout=true;
}
});
AlertDialog alert = builder.create();
alert.show();
}
public boolean onKeyDown( int keyCode, KeyEvent event)
{
// bLogout=false;
if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount()==0)
{
if(!bTemp)
{
showLogoutDialog(keyCode,event);
return false;
}
else
{
bTemp=false;
if(!bLogout)
{
return super.onKeyDown(keyCode, event);
}
else
{
bLogout=false;
return true;
}
}
}
else
return super.onKeyDown(keyCode, event);
}
but on Yes key press I am unable to logout the application. Actually I need to do this on home screen and ask user whether he want to logout?
Please help.
Call a custom function instead of
onKeyDown()from the Yes button’s listener to complete the logout, and then callfinishto actually exit.