2013-11-21 41 views
0

我是新来的机器人。我在警报对话框中做了一些编码。但是这是两次。警报对话框来两次

这里是我的代码:

datePickerDialog = new DatePickerDialog(AddNewTest.this, 
    new OnDateSetListener() 
    { 
     @Override 
     public void onDateSet(DatePicker view, int _year, int _monthOfYear, 
      int _dayOfMonth) 
     { 
      String date = _year+""; 
      if(_monthOfYear+1<10) 
       date += "0"; 
      date += (_monthOfYear+1); 
      if(_dayOfMonth<10) 
       date += "0";     
      date += _dayOfMonth; 

      testdate = Integer.parseInt(date); 

      if(testdate != currentDate) 
      { 
       if(testdate < currentDate) 
       { 
        TestDetailsInfo info = new TestDetailsInfo(); 
        TestDetailsTable table = new TestDetailsTable(); 
        info.setMemberid(getMemberid()); 
        info.setTestname(getTestname()); 
        info.setTestdate(testdate); 

        if(table.checkDate(info) > 0) 
        { 
         testdate = 0; 
         testDate.setText(""); 
         MyAlertBox("Alert", "Sorry, You Have Already Entered For This Date", activity); 
        } 
        else 
        { 
         setTestdate(testdate); 
         testDate.setText(_dayOfMonth+"/"+(_monthOfYear+1)+"/"+_year); 
        } 
       } 
       else 
       { 
        testdate = 0; 
        testDate.setText(""); 
        //isInsert = false; 
        MyAlertBox("Alert", "Sorry, Please Enter Previous Date", activity); 
       } 
      } 
      else if(testdate == currentDate) 
      { 
       setTestdate(testdate); 
       testDate.setText(_dayOfMonth+"/"+(_monthOfYear+1)+"/"+_year); 
      } 
     } 
    }, year, monthOfYear, dayOfMonth); 
datePickerDialog.show(); 

我的警告框代码

private void MyAlertBox(String title, String message, Context context) 
{ 
    new AlertDialog.Builder(context) 
      .setMessage(message) 
      .setTitle(title) 
      .setCancelable(false) 
      .setPositiveButton("OK", new DialogInterface.OnClickListener() 
      { 
       public void onClick(DialogInterface dialog, int which) 
       { 
        dialog.cancel(); 
       } 
      }) 
      .show(); 
} 

我的问题是,如果我选择前进即展露对不起日期,请只透水日期。但该对话框出现两次。我做了很多方法来解决这个问题。但我没有成功。在那个堆叠流程中,我也搜索了这个。

谢谢 桑卡小工具的

回答

0

点击事件

Button b = (Button)findViewById(R.id.SetDeliveryDate); 
       EnterDeliveryDate.setOnClickListener(new OnClickListener() { 

        @Override 
        public void onClick(View v) { 

         new DatePickerDialog(MobileQDC_Booking_Screen.this, date, myCalendar 
           .get(Calendar.YEAR), myCalendar.get(Calendar.MONTH), 
           myCalendar.get(Calendar.DAY_OF_MONTH)).show(); 
      clicked = true;   

        } 
       }); 

//date picker dialouge 
final DatePickerDialog.OnDateSetListener date = new DatePickerDialog.OnDateSetListener() { 


        @Override 
        public void onDateSet(DatePicker view, int year, int monthOfYear, 
          int dayOfMonth) { 
         if(clicked) 
         {    
         myCalendar.set(Calendar.YEAR, year); 
         myCalendar.set(Calendar.MONTH, monthOfYear); 
         myCalendar.set(Calendar.DAY_OF_MONTH, dayOfMonth); 
         String myFormat = "dd MMM yyyy"; 

        SimpleDateFormat sdf = new SimpleDateFormat(myFormat, Locale.US); 
        _SetDD = sdf.format(myCalendar.getTime()); 


        try { 
         Date dateBooking = sdf.parse(_BookingDate); 
         Date dateDue = sdf.parse(_SetDD); 
         if(dateDue.after(dateBooking)){ 
          EnterDeliveryDate.setText(_SetDD); 

         }else if(dateDue.equals(dateBooking)){ 
          EnterDeliveryDate.setText(_SetDD); 

         } 
         else{ 
         // put your alert code 
         } 

        } catch (Exception e) { 

         e.printStackTrace(); 
        } 
        clicked= false; 
         } 
        } 
       };