0

当我单击日期按钮获取日期选择器对话框并选择日期时,该日期将存储在编辑文本中。这次我将对日期进行验证。表示日期小于当前日期,它将显示警报。这次我收到了警报,但显示了两个警报。如何避免显示两个警报?

private String setdate() {      
    int fYear, fMonth, fDay;        
    final Calendar c = Calendar.getInstance();
    fYear = c.get(Calendar.YEAR);
    fMonth = c.get(Calendar.MONTH);
    fDay = c.get(Calendar.DAY_OF_MONTH);
    // Launch Date Picker Dialog
    DatePickerDialog dpd = new DatePickerDialog(RemindMeDetails.this,
            new DatePickerDialog.OnDateSetListener() {                  
                @Override
                public void onDateSet(DatePicker view, int year,
                        int monthOfYear, int dayOfMonth) {                      
                    try{    
                        SimpleDateFormat formatter = new SimpleDateFormat("dd-MM-yyyy");                            
                        //for current date
                        String cdate = formatter.format(new Date());
                        Date Cdate = formatter.parse(cdate);                            
                        //this date id for selected date
                        String date=(dayOfMonth + "-"
                                + (monthOfYear + 1) + "-" + year).toString();                   
                        Date dateD = formatter.parse(date);                             
                        if (Cdate.compareTo(dateD)<=0){
                            onetime_edit_date.setText(date);                                
                        }                           
                        else{
                            showmessage("Alert", "date is not lower than current Date");
                        }                       
                    }catch (ParseException e1){
                        e1.printStackTrace();
                    }               
                }
            }, fYear, fMonth, fDay );
    dpd.show();     
    return date;        
}
4

1 回答 1

0

您必须在 showmessage() 方法中编写验证。如果您在方法中显示警报对话框,请检查它是否已经显示......就像您可以处理它一样。否则使用布尔变量。

编辑

试试这样

AlertDialog alertDialog;

void showmessage(String string, String string2) {

    if (alertDialog == null || !alertDialog.isShowing()) {
        Builder builder;
        builder = new AlertDialog.Builder(this);
        builder.setTitle(string);
        builder.setMessage(string2);
        builder.setPositiveButton("OK", new OnClickListener() {

            @Override
            public void onClick(DialogInterface dialog, int which) {
                dialog.dismiss();
            }
        });

        alertDialog = builder.create();
        alertDialog.show();
    }
}
于 2014-12-24T10:29:25.370 回答