2013-07-24 5 views
0

나는 onClick 수신기에 작은 문제가 있습니다. 긍정적 인 버튼을 클릭하면 다음과 같은 대화 상자가 나타납니다.안드로이드 onClick 버튼을 클릭

if (문 == true) -> 양수 버튼을 클릭하면 몇 가지 내용이 수행됩니다 if (statement == false) -> 양수 버튼을 클릭하면 Toast.makeText()가 표시되지만 대화 상자 창을 닫지 않습니다. 사전에

감사합니다!

+0

확인이 링크 http://developer.android.com/reference/android/app/Dialog.html#cancel을 (시도 reference/android/app/Dialog.html # dismiss() ... 자세한 내용은 게시물 ur 코드 – user1140237

답변

0

닫으려면 닫기 방법을 호출해야합니다. 는 POS/NEG 버튼 리스너의 마지막 줄에 줄을 넣어 : 대화 상자가 매개 변수로 전달되는 DialogInterface의 인스턴스

dialog.cancel(); 

합니다.

DialogInterface.OnClickListener.onClick(DialogInterface ,int);

에 업데이트 :

내가 앞서 언급했듯이
builder.setNeutralButton("Ustaw", new DialogInterface.OnClickListener() { 
       @Override 
       public void onClick(DialogInterface dialog, int id) { 
         getRecurrence(whichType, finishType); 
         if(isRecurrenceProperlySet) { 
           //do some stuff 

         } 
         else { 
Toast.makeText(contextThemeWrapper, "Set data!", Toast.LENGTH_SHORT).show(); 
} 
dismiss(); 
       } 
     }); 

, 청취자의 마지막 줄에 그 선을 이동합니다. 한 번

+0

만약 내가 긍정적이고 부정적인 버튼을 클릭하면 AlertDialog가 즉시 닫히지 만 true/false에 대한 내 문장을 확인하고 싶습니다. false -> 토스트가 있고 대화 상자가 닫히면 계속 대화 상자가 열립니다. – dejvid

+0

코드를 표시하십시오. – wtsang02

+0

http://pastebin.com/2QbwtaxW – dejvid

0

& http://developer.android.com/)이

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.layout); 
    findViewById(R.id.test).setOnClickListener(new OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      show(); 
     } 
    }); 

} 

AlertDialog alertDialogBox; 
private OnClickListener clickListner = new OnClickListener() { 
    @Override 
    public void onClick(View v) { 
     show(); 
    } 
}; 
private boolean conditionVal = false; 

public void show() { 

    AlertDialog.Builder b = new AlertDialog.Builder(this); 
    alertButtonValue = false; 
    b.setNegativeButton("YES", new DialogInterface.OnClickListener() { 
     @Override 
     public void onClick(DialogInterface dialog, int which) { 
     } 
    }); 
    b.setPositiveButton("No", new DialogInterface.OnClickListener() { 

     @Override 
     public void onClick(DialogInterface dialog, int which) { 

     } 
    }); 
    this.alertDialogBox = b.create(); 
    this.alertDialogBox.setTitle("Helllo"); 
    this.alertDialogBox.setMessage("message..."); 

    alertDialogBox.setOnShowListener(new DialogInterface.OnShowListener() { 
     @Override 
     public void onShow(DialogInterface dialog) { 
      if (alertButtonValue == false) { 
       Button button = alertDialogBox 
         .getButton(DialogInterface.BUTTON_NEGATIVE); 
       button.setOnClickListener(new View.OnClickListener() { 
        @Override 
        public void onClick(View v) { 
         if (!conditionVal) 
          Toast.makeText(getApplicationContext(), 
            "Condition not satisfied", 
            Toast.LENGTH_SHORT).show(); 
        } 
       }); 
       alertButtonValue = true; 
      } else { 
       Toast.makeText(getApplicationContext(), "Hello", 
         Toast.LENGTH_SHORT).show(); 
      } 
     } 
    }); 
    this.alertDialogBox.show(); 
} 

private boolean alertButtonValue = false; 
관련 문제