Android:DatePicker 正在设置值,即使我在 DatePicker 之外触摸 [英] Android : DatePicker is setting the value even I touch outside of the DatePicker
问题描述
我有一个 TextView,当我触摸 TextView 时,它会调用 Date 和 TimePicker.首先,我显示 DatePicker,一旦我选择了日期,我就可以设置该值.设置值后,我从 TimePicker 获取时间.就像我可以在选择时间后完成的 DatePicker 一样.
I have one TextView and when I touch the TextView it will call the Date and TimePicker. First I'am showing the DatePicker and Once I have selected date then I can set the value. After I set the value I'am getting time from the TimePicker. Like the DatePicker I can give done after I chose the time.
但即使我触摸对话框外,这些值也会自动设置.
But the values are setting automatically even I touch outside the dialog.
例如,在我触摸 TextView 后,它会调用 DatePicker.即使我没有设置值
For example after I touch the TextView it calls the DatePicker. Even If i not set the value
这是我的代码.
dataandtime.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
TimePickerDialog tpd = new TimePickerDialog(context, mTimeSetListener, mhour, mminute, false);
tpd.show();
DatePickerDialog dpd = new DatePickerDialog(context,
mDateSetListener, myear, mmonth, mday);
dpd.show();
}
});
private DatePickerDialog.OnDateSetListener mDateSetListener = new
DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year, int monthOfYear,
int dayOfMonth) {
myear=year;
mmonth=monthOfYear+1;
mday=dayOfMonth;
if(mmonth<10)
{
month = 0 + Integer.toString(mmonth);
}
else
{
month = Integer.toString(mmonth);
}
if(mday<10)
{
day = 0 + Integer.toString(mday);
}
else
{
day = Integer.toString(mday);
}
nextdate = (new StringBuilder().append(myear).append("-").append(month).append("-").append(day).append(" ")).toString();
}
};
private OnTimeSetListener mTimeSetListener = new TimePickerDialog.OnTimeSetListener() {
@Override
public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
// TODO Auto-generated method stub
mhour = hourOfDay;
mminute = minute;
if(mhour<10)
{
hour = 0 + Integer.toString(mhour);
}
else
{
hour = Integer.toString(mhour);
}
if(mminute<10)
{
tminute = 0 + Integer.toString(mminute);
}
else
{
tminute = Integer.toString(mminute);
}
if(msecond<10)
{
second = 0 + Integer.toString(msecond);
}
else
{
second = Integer.toString(msecond);
}
nexttime = (new StringBuilder().append(hour).append(":").append(tminute).append(":").append(second)).toString();
dateandtime = nextdate+nexttime;
dataandtime.setText(dateandtime);
}
};
推荐答案
DatePickerDialog dpd = new DatePickerDialog(context,
mDateSetListener, myear, mmonth, mday);
dpd.setCanceledOnTouchOutside(true);
文档此处
这篇关于Android:DatePicker 正在设置值,即使我在 DatePicker 之外触摸的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!