2017-12-26 21 views
0

AlertDialog 표시시 활동이 재설정됩니다.
당신이 이유를 말해 도울 수AlertDialog 표시시 재설정되는 활동

//creating the alert dialog 
final AlertDialog.Builder builder = new AlertDialog.Builder(this); 
builder.setCancelable(true) 
      .setNegativeButton("Close", new DialogInterface.OnClickListener() { 
       @Override 
       public void onClick(DialogInterface dialog, int id) { 
       //Action for close button 
        dialog.cancel(); 
       } 
      }); 

활동이에 AlertDialog가 표시되는 즉시 다시 가져옵니다 나는 안드로이드를 배우고 다음은이 tutorial.

protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    // Other Code 
    submitBtn = (Button) findViewById(R.id.submit_button); 
    // Other Code 
    submitBtn.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v){ 
      AlertDialog alert = builder.create(); 
      alert.setMessage("Hello " + name); 
      alert.setTitle("Showing content in prompt window"); 
      alert.show(); 
      setContentView(R.layout.activity_main); 
     } 

을 다음입니다

내 AlertDialogCode입니다 활동이 재설정되는 이유는 무엇입니까?

+1

이 줄을 제거하십시오 ** setContentView (R.layout.activity_main); ** onclick 메서드에서. – androidnoobdev

답변

1

onCreate 메서드를 호출 할 때 콘텐츠 뷰를 한 번만 설정해야합니다. 코드에서 이미 두 번째 줄에 setContentView을 설정했습니다. 다시 설정하면 활동을 재설정하고 이벤트 핸들러도 제거합니다.

두 번째 setContentView를 삭제하는 것이 좋습니다. 이것은 또한 당신이 따르는 튜토리얼의 문제입니다.

alert.show(); 
//setContentView(R.layout.activity_main); // <-- Needs to be removed 
+0

을 의미합니다. 예, 알림 대화 상자가 닫힌 후 제출 버튼이 아무 것도하지 않았습니다. . – Supriya

2

당신은 너무

setContentView(R.layout.activity_main);

public void onClick(View v){ 
    AlertDialog alert = builder.create(); 
    alert.setMessage("Hello " + name); 
    alert.setTitle("Showing content in prompt window"); 
    alert.show(); 
    //setContentView(R.layout.activity_main); 
    //^^^^^^^^^^^^^^^^^^^^^^^^^^^^ remove 
} 
+0

감사합니다. 지금은 문제를 이해합니다. – Supriya

+0

@Supriya 나는 행복하게 코딩 할 수있어서 기뻐요. –

1

주석을 제거하거나 첫 번째 코드에 라인

 setContentView(R.layout.activity_main); 

을 제거 같은 레이아웃과 활동의 XML 뷰를 재설정하고 있습니다. 이것은 귀하의 활동을 강제로 재로드하기 때문입니다.

+0

'앱을 다시 불러 와야합니다. '라고 말한 것 같습니다. 특히 액티비티의 활동 또는 특히 –