警报对话框需要返回两次才能完成活动



在我的活动中,当用户按下电源按钮时,我正在显示旋转器,如果用户选择任何选项都可以正常工作,则旋转器显示成功,但当用户按回其所需的两次回按以显示原始活动时,我该怎么办?如何关闭和完成活动,只是单一的背部按压??

public class ActivityHome extends Activity  {
@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
         setContentView(R.layout.mainactivity);
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
   if(KeyEvent.KEYCODE_POWER == event.getKeyCode() && isRooted()) {     
        startActivity(new Intent(ActivityHome.this, Spinnermenu.class));        
        return true;      
    }
    return super.onKeyDown(keyCode, event);
}
public class Spinnermenu  extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);     
    final String items[] = {"Power off","Restart"};
    AlertDialog.Builder ab=new AlertDialog.Builder(Spinnermenu.this);
    ab.setTitle("Power Options");
    ab.setItems(items, new DialogInterface.OnClickListener() {
    public void onClick(DialogInterface d, int choice) {
        if(choice == 0) {       
                    Toast.makeText(Spinnermenu.this,"PowerOff Perform",Toast.LENGTH_SHORT).show();                      
        }
        else if(choice == 1) {
        }
    });
    ab.show();
    public boolean onKeyDown(int keyCode, KeyEvent event) 
    {
       if(keyCode==KeyEvent.KEYCODE_BACK){
            this.finish ();
       }
       return true;
     }
}

您只需将这段代码放入程序中它将满足您的需要....

    @Override
    public void onBackPressed() {
        super.onBackPressed();
        finish();
    }

祝你一切顺利。

调用onBackPressed() from

       public boolean onKeyDown(int keyCode, KeyEvent event) 
{
   if(keyCode==KeyEvent.KEYCODE_BACK){
   // call here
      onBackPressed();
   }
   return true;
 }
             @Override
public void onBackPressed() {

// just write alertbox option here
   AlertDialog.Builder ab=new AlertDialog.Builder(Spinnermenu.this);
ab.setTitle("Power Options");
ab.setItems(items, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface d, int choice) {
    if(choice == 0) {       
                Toast.makeText(Spinnermenu.this,"PowerOff Perform",Toast.LENGTH_SHORT).show();  
//add,     
    finish();                    
    }
    else if(choice == 1) {
//add,
    finish();   
    }
});
ab.show();

}

最新更新