2011-05-13 29 views
0

这里是我的代码不完的活动中使用主题对话框

@Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     AlertOn(); 
    } 

    private void AlertOn() {  
     alertbox = new AlertDialog.Builder(this).create(); 
     alertbox.setIcon(R.drawable.icon); 
     alertbox.setTitle(getIntent().getStringExtra("Title")); 
     alertbox.setMessage(getIntent().getStringExtra("Message")); 
     alertbox.setButton("Ok", new DialogInterface.OnClickListener() { 
      public void onClick(final DialogInterface dialog, int arg1) {    
       dialog.dismiss(); 
       Intent startActivity = new Intent(); 
       startActivity.setClass(getApplicationContext(), moontech.fax.mFax.class); 
       startActivity.setAction(NotificationAlert.class.getName()); 
       startActivity.setFlags( 
         Intent.FLAG_ACTIVITY_NEW_TASK 
         | Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS);  
       startActivity(startActivity); 
       finish(); 
      } 
     }); 

     alertbox.show();   
    } 

和manifeast文件中声明

<activity android:name="com.demo.notificationalert" 
      android:theme="@android:style/Theme.Dialog" 
      android:screenOrientation="portrait" /> 

但是当显示对话框,不按确定我用回从设备那么这种活动不完了。

+0

你认为重写'onPause()'?在这里你可以调用'finish()',一旦你按下后退按钮,它就会被调用。 – whirlwin 2011-05-13 09:58:45

回答

0

默认情况下,当显示对话框并按下后退按钮时,它将关闭对话框。您可以在您的活动中覆盖onKeyDown方法,如下所示:

@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) { 
    if (keyCode == KeyEvent.KEYCODE_BACK) { 
     finish(); 
    } 
    return super.onKeyDown(keyCode, event); 
} 

这将完成您的活动。希望能帮助到你。