2014-05-21 94 views
0

那麼我試圖從Docs使用Alertdialog。但有一個問題。如果我旋轉手機警報對話框重新創建,並出現兩個alertdialog。如何防止重新創建alertDialog。AlertDialog旋轉後重新創建

這是我的代碼:

public class FireMissilesDialogFragment extends DialogFragment { 
    @Override 
    public Dialog onCreateDialog(Bundle savedInstanceState) { 
     // Use the Builder class for convenient dialog construction 
     AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); 
     builder.setMessage(R.string.dialog_fire_missiles) 
       .setPositiveButton(R.string.fire, new DialogInterface.OnClickListener() { 
        public void onClick(DialogInterface dialog, int id) { 
         // FIRE ZE MISSILES! 
        } 
       }) 
       .setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() { 
        public void onClick(DialogInterface dialog, int id) { 
         // User cancelled the dialog 
        } 
       }); 
     // Create the AlertDialog object and return it 
     return builder.create(); 
    } 
} 

,這是表現方法:

public void confirmFireMissiles() { 
    DialogFragment newFragment = new FireMissilesDialogFragment(); 
    newFragment.show(getSupportFragmentManager(), "missiles"); 
} 

回答

2

檢查savedInstanceState設置:

public class FireMissilesDialogFragment extends DialogFragment { 
    @Override 
    public Dialog onCreateDialog(Bundle savedInstanceState) { 

     if (savedInstanceState == null) { 
      // create new dialog 
     } 
    } 
+1

'if(savedInstanceState == null){//創建新對話框}'我已經將該代碼放在'public void confirmFireMissiles()'中,它的工作原理謝謝! – mehmet

0

添加此

清單文件中的Activity標記內的屬性。