2014-05-21 3 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 태그 내의속성