我是android新手。我在警告对话框中做了一些编码。但那次来了两次。
这是我的代码:
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 :(得分: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;
}
}
};