2011-05-13 27 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); 
} 

這將完成您的活動。希望能幫助到你。