2012-11-27 5 views
0

이것은 내 쇼 대화 코드입니다.안드로이드에서 대화 상자 표시

@Override 
    protected Dialog onCreateDialog(int id) { 
    switch (id) { 
    case 0: 
     return new AlertDialog.Builder(this) 
     .setIcon(R.drawable.ic_launcher) 
     .setTitle("Select Reminder which you want to delete") 
     .setPositiveButton("OK", 
     new DialogInterface.OnClickListener() { 
      public void onClick(DialogInterface dialog, int whichButton) 
      { 
       Toast.makeText(getBaseContext(), "OK clicked!", Toast.LENGTH_SHORT).show(); 
       check = 1; 
      } 
     } 
     ) 

     .setNegativeButton("Cancel", 
     new DialogInterface.OnClickListener() { 
      public void onClick(DialogInterface dialog, int whichButton) 
      { 
       Toast.makeText(getBaseContext(), "Cancel clicked!", Toast.LENGTH_SHORT).show(); 
       check = 2; 
      } 
     } 
     ) 

     .setMultiChoiceItems(items, itemsChecked, 
     new DialogInterface.OnMultiChoiceClickListener() { 
      public void onClick(DialogInterface dialog, 
        int which, boolean isChecked) { 

       Toast.makeText(getBaseContext(), items[which] + (isChecked ? " checked!":" unchecked!") + which, Toast.LENGTH_SHORT).show(); 
      } 
     } 
     ).create(); 
    } 
     return null; 
    } 

이것은 내가 전화하는 곳의 기능입니다.

내가 직면 한 비트 문제 n "showDialog (0);" 기능은 잘 작동하지만 "ok"버튼을 누르면 대화 상자가 사라지고 "ok"버튼의 onclicklistener로 작성된 토스트 만 표시되지만 "showDialog (0);" 다른 토스트가 도달 할 수 없다는 것을 나타내는 "ok"와 "cancel"버튼의 onclicklisteners에서 값 1 또는 2를 설정 한 변수 "check"(전역 변수)를 의미하고 "showDialog (0)"뒤에 if-else 조건에서 사용합니다.); " 다른 토스트를 보여주기 위해 if-else 조건을 점검하지 않고 "show"기능을 종료합니다. 나는 실제로 여기서 무슨 일이 일어 났는지 이해하지 못했습니까?

showDialog(0)가 호출

+0

여기에서 검사 후 ShowDialog를 이동 시도해야 할 사용자 프레스에 대한 몇 가지 작업을 수행하려는 경우가 .. 내가 생각했던 업데이트는 그 코드가하는 곳 읽기 showDialog 다음에 실행되지 않습니다. (내가 잘못 생각할 수도 있고, 안드로이드에서 뭔가 다른 것일 수도 있습니다) –

+0

흠 .. showDialog가 필요하다면 코드를 사용하면 어떻게 해야할지 알 수 있습니까? – user1743317

+0

@moncadad 그렇지 않습니다. 코드는 실행되지만'OK press '직전입니다. 'showDialog' 호출 바로 다음에 감염됩니다. –

답변

0

. 이어서이 코드 (OK 버튼을 누르기 전에) 수행되는 것을

if(check == 1) 
    { 
     Toast.makeText(this, "ok" + check, Toast.LENGTH_LONG).show(); 
    } 
    else if (check == 2) 
    { 
     Toast.makeText(this, "Cancel" + check, Toast.LENGTH_LONG).show(); 
    } 

다음 I가 check=0 추측 후, 그래서 Toast는 도시되고 있지.

당신이 OK은 다음

new DialogInterface.OnClickListener() { 
      public void onClick(DialogInterface dialog, int whichButton) 
      { 
       Toast.makeText(getBaseContext(), "OK clicked!", Toast.LENGTH_SHORT).show(); 
       check = 1; 
       //here do your work 
      } 
     } 
관련 문제