现在cad打开图形发现错误时间选错了,可不可以改日期

8622人阅读
Android学习笔记(20)
自从写了博客之后,总觉的太烦琐,太麻烦,而且容易报错和不容易维护,而且是从外部的角度来考虑,不是通过组件本身的角度,总之经过再三的考虑之后,还是决定改一下,精简和优化一下。
1,首先一进来,便是两个简单的TextView,然后日期和时间,时间是我乱写的,日期是今天的。
2,当我点击日期的TextView的时候会弹出一个对话框,DatePickerDialog,因为今天是8月14,当我点击“-”号的时候,“-”号和中间显示数字的组件都被置成了不可按的状态,强迫用户不去选以前的日子,只能选择以后的日子。
3,当日期选择之后,点击时间的TextView,然后会弹出一个时间的对话框,TimePickerDialog,当我选择以前的时间,显示和TimePicker都会被初始化为当前时间
4,可以看到3中选择了15:02,因为时间过期,所以TextView和TimePicker都会被初始化为当前时间。
5,如果是不过期的时间,即将来的时间,则不会初始化。
6,如果日期是今天之后的日子,那么时间不论怎么设置都行。
在这里重写了DatePickerDialog:
* type为1的话则代表以后的日期是过期的,为2的话则代表以前的日期是过期的
* @author david
public class MyDatePicker extends DatePickerDialog {
private int type = -1;
public MyDatePicker(Context context, OnDateSetListener callBack, int year,
int monthOfYear, int dayOfMonth) {
super(context, callBack, year, monthOfYear, dayOfMonth);
public MyDatePicker(Context context, OnDateSetListener callBack, int year,
int monthOfYear, int dayOfMonth, int type) {
super(context, callBack, year, monthOfYear, dayOfMonth);
this.type =
public void onDateChanged(DatePicker view, int year, int month, int day) {
Date time = new Date();
//目前日期
Date nextTime = new Date();
//将要设置的日期,把值传入其中
nextTime.setYear(year - 1900);
nextTime.setMonth(month);
nextTime.setDate(day);
if(view != null){
if(type == 1){
if ((nextTime.getTime() - time.getTime())&=0) {
((ViewGroup) ((ViewGroup) view.getChildAt(0)).getChildAt(0)).getChildAt(0).setEnabled(false);
((ViewGroup) ((ViewGroup) view.getChildAt(0)).getChildAt(1)).getChildAt(0).setEnabled(false);
((ViewGroup) ((ViewGroup) view.getChildAt(0)).getChildAt(2)).getChildAt(0).setEnabled(false);
((ViewGroup) ((ViewGroup) view.getChildAt(0)).getChildAt(0)).getChildAt(1).setEnabled(false);
((ViewGroup) ((ViewGroup) view.getChildAt(0)).getChildAt(1)).getChildAt(1).setEnabled(false);
((ViewGroup) ((ViewGroup) view.getChildAt(0)).getChildAt(2)).getChildAt(1).setEnabled(false);
super.updateDate(time.getYear()+1900, time.getMonth(), (time.getDate()));
((ViewGroup) ((ViewGroup) view.getChildAt(0)).getChildAt(0)).getChildAt(0).setEnabled(true);
((ViewGroup) ((ViewGroup) view.getChildAt(0)).getChildAt(1)).getChildAt(0).setEnabled(true);
((ViewGroup) ((ViewGroup) view.getChildAt(0)).getChildAt(2)).getChildAt(0).setEnabled(true);
((ViewGroup) ((ViewGroup) view.getChildAt(0)).getChildAt(0)).getChildAt(1).setEnabled(true);
((ViewGroup) ((ViewGroup) view.getChildAt(0)).getChildAt(1)).getChildAt(1).setEnabled(true);
((ViewGroup) ((ViewGroup) view.getChildAt(0)).getChildAt(2)).getChildAt(1).setEnabled(true);
super.onDateChanged(view, year, month, day);
}else if(type == 2){
if ((nextTime.getTime() - time.getTime()) &= 0) {
((ViewGroup) ((ViewGroup) view.getChildAt(0)).getChildAt(0)).getChildAt(2).setEnabled(false);
((ViewGroup) ((ViewGroup) view.getChildAt(0)).getChildAt(1)).getChildAt(2).setEnabled(false);
((ViewGroup) ((ViewGroup) view.getChildAt(0)).getChildAt(2)).getChildAt(2).setEnabled(false);
((ViewGroup) ((ViewGroup) view.getChildAt(0)).getChildAt(0)).getChildAt(1).setEnabled(false);
((ViewGroup) ((ViewGroup) view.getChildAt(0)).getChildAt(1)).getChildAt(1).setEnabled(false);
((ViewGroup) ((ViewGroup) view.getChildAt(0)).getChildAt(2)).getChildAt(1).setEnabled(false);
super.updateDate(time.getYear() + 1900, time.getMonth(),(time.getDate())); //更新picker
super.onDateChanged(view, year, month, day);
((ViewGroup) ((ViewGroup) view.getChildAt(0)).getChildAt(0)).getChildAt(2).setEnabled(true);
((ViewGroup) ((ViewGroup) view.getChildAt(0)).getChildAt(1)).getChildAt(2).setEnabled(true);
((ViewGroup) ((ViewGroup) view.getChildAt(0)).getChildAt(2)).getChildAt(2).setEnabled(true);
((ViewGroup) ((ViewGroup) view.getChildAt(0)).getChildAt(0)).getChildAt(1).setEnabled(true);
((ViewGroup) ((ViewGroup) view.getChildAt(0)).getChildAt(1)).getChildAt(1).setEnabled(true);
((ViewGroup) ((ViewGroup) view.getChildAt(0)).getChildAt(2)).getChildAt(1).setEnabled(true);
super.updateDate(year, month, day);
super.onDateChanged(view, year, month, day); //更新标题
当然如果只是日期,不考虑时间的话,以上就可以了。现在要考虑时间的话,我本来打算跟重写日期对话框一样,重写时间对话框,采用一样的重写方法,可是发现,在重写里面的TimePicker重新赋值总是会报栈溢出错误,TimePicker放在外面来赋值却又没错,诡异的很,具体代码:
public class MyTimePicker extends TimePickerDialog{
private boolean isS
private int hour,
public MyTimePicker(Context context, OnTimeSetListener callBack,
int hourOfDay, int minute, boolean is24HourView,boolean isSet) {
super(context, callBack, hourOfDay, minute, is24HourView);
this.isSet = isS
this.hour = hourOfD
this.minute =
public void onTimeChanged(TimePicker view, int hourOfDay, int minute) {
Date time = new Date();
//目前日期
Date nextTime = new Date();
//将要设置的日期,把值传入其中
nextTime.setHours(hourOfDay);
nextTime.setMinutes(minute);
if(view != null){
if(!isSet){
Log.i(&test&,&日期等于今天,时间有限制&);
if(nextTime.getTime() - time.getTime() &= 0){
Log.i(&test&,&hour1:&+hourOfDay+&,minut:&+minute);
Log.i(&test&,&日期等于今天,时间小于等于现在,不能按 - 号按钮&);
((ViewGroup) ((ViewGroup) view.getChildAt(0)).getChildAt(0)).getChildAt(2).setEnabled(false);
((ViewGroup) ((ViewGroup) view.getChildAt(0)).getChildAt(1)).getChildAt(2).setEnabled(false);
((ViewGroup) ((ViewGroup) view.getChildAt(0)).getChildAt(0)).getChildAt(1).setEnabled(false);
((ViewGroup) ((ViewGroup) view.getChildAt(0)).getChildAt(1)).getChildAt(1).setEnabled(false);
updateTime(hour, minute);
super.onTimeChanged(view, hourOfDay, minute);
Log.i(&test&,&日期等于今天,时间大于现在,可以按 - 号按钮&);
Log.i(&test&,&hour2:&+time.getHours()+&,minut:&+time.getMinutes());
((ViewGroup) ((ViewGroup) view.getChildAt(0)).getChildAt(0)).getChildAt(2).setEnabled(true);
((ViewGroup) ((ViewGroup) view.getChildAt(0)).getChildAt(1)).getChildAt(2).setEnabled(true);
((ViewGroup) ((ViewGroup) view.getChildAt(0)).getChildAt(0)).getChildAt(1).setEnabled(true);
((ViewGroup) ((ViewGroup) view.getChildAt(0)).getChildAt(1)).getChildAt(1).setEnabled(true);
this.hour = hourOfD
this.minute =
super.onTimeChanged(view, hourOfDay, minute);
Log.i(&test&,&日期大于今天,时间随便选&);
((ViewGroup) ((ViewGroup) view.getChildAt(0)).getChildAt(0)).getChildAt(2).setEnabled(true);
((ViewGroup) ((ViewGroup) view.getChildAt(0)).getChildAt(1)).getChildAt(2).setEnabled(true);
((ViewGroup) ((ViewGroup) view.getChildAt(0)).getChildAt(0)).getChildAt(1).setEnabled(true);
((ViewGroup) ((ViewGroup) view.getChildAt(0)).getChildAt(1)).getChildAt(1).setEnabled(true);
this.hour = hourOfD
this.minute =
super.onTimeChanged(view, hourOfDay, minute);
public void setIsSet(boolean isSet){
this.isSet = isS
public void setHour(int hour) {
this.hour =
public void setMinute(int minute) {
this.minute =
public int getHour(){
public int getMinute(){
备注1:这里的逻辑是这样的:当我选择的时间小于当前时间的话,那么把TimePickerDialog下面的“-”和中间的组件都设置成灰色不可按的,同时备注1出代码的作用就是把TimePicker的值初始话为当前的时间,updateTIme方法在父类中的源码如下:
public void updateTime(int hourOfDay, int minutOfHour) {
mTimePicker.setCurrentHour(hourOfDay);
mTimePicker.setCurrentMinute(minutOfHour);
}可以看到只是给TimePicker初始化的错做,可是在这里初始化这个组件的时候会报错:
想了很久,也不知道原因,于是就打算不重写TimePickerDialog,效果看起来虽然没有日期的效果那么来的直观,但是比前面的已经要好多了。
下面看看主类的调用:
hello.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
DatePickerDialog.OnDateSetListener listener = new DatePickerDialog.OnDateSetListener() {
public void onDateSet(DatePicker view, int year, int monthOfYear,
int dayOfMonth) {
// TODO Auto-generated method stub
month1 = monthOfY
day1 = dayOfM
updateDisplay1();
flag = isNowDate(year1,month1,day1);
new MyDatePicker(MainActivity.this, listener, year1, month1, day1, 2).show();
world.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
OnTimeSetListener listener = new OnTimeSetListener() {
public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
boolean isSetTime = isNowTime(flag, hourOfDay, minute);
if(view != null){
if(!isSetTime){
((ViewGroup) ((ViewGroup) view.getChildAt(0)).getChildAt(0)).getChildAt(2).setEnabled(false);
((ViewGroup) ((ViewGroup) view.getChildAt(0)).getChildAt(1)).getChildAt(2).setEnabled(false);
((ViewGroup) ((ViewGroup) view.getChildAt(0)).getChildAt(0)).getChildAt(1).setEnabled(false);
((ViewGroup) ((ViewGroup) view.getChildAt(0)).getChildAt(1)).getChildAt(1).setEnabled(false);
initTimePicker(view, new Date().getHours(), new Date().getMinutes());
//time1.onTimeChanged(view, hourOfDay, minute);
updateDisplay2(new Date().getHours(), new Date().getMinutes());
((ViewGroup) ((ViewGroup) view.getChildAt(0)).getChildAt(0)).getChildAt(2).setEnabled(true);
((ViewGroup) ((ViewGroup) view.getChildAt(0)).getChildAt(1)).getChildAt(2).setEnabled(true);
((ViewGroup) ((ViewGroup) view.getChildAt(0)).getChildAt(0)).getChildAt(1).setEnabled(true);
((ViewGroup) ((ViewGroup) view.getChildAt(0)).getChildAt(1)).getChildAt(1).setEnabled(true);
updateDisplay2(hourOfDay,minute);
time1 = new TimePickerDialog(MainActivity.this,listener , Integer.parseInt(world.getText().toString().split(&:&)[0].trim()), Integer.parseInt(world.getText().toString().split(&:&)[1].trim()), true);
time1.show();
}备注2:这里是根据设置的日期和当前的日期进行比较得到一个boolean值,来决定对时间要不要进行限制
备注3:这里是根据设置时间和当前时间进行比较得到一个boolean值,来决定如何初始化时间组件
Demo下载:
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:251083次
积分:2886
积分:2886
排名:第10330名
原创:47篇
转载:20篇
评论:125条
(1)(1)(4)(7)(5)(6)(2)(7)(13)(21)请问机票订错时间了,能不能改别的时间机票?-学网-中国IT综合门户网站-提供健康,养生,留学,移民,创业,汽车等信息
> 信息中心 >
请问机票订错时间了,能不能改别的时间机票?
来源:互联网 发表时间: 10:07:20 责任编辑:李志喜字体:
为了帮助网友解决“请问机票订错时间了,能不能改别的时间机票?”相关的问题,学网通过互联网对“请问机票订错时间了,能不能改别的时间机票?”相关的解决方案进行了整理,用户详细问题包括:RT,我想知道:请问机票订错时间了,能不能改别的时间机票?,具体解决方案如下:解决方案1:
如果是Y舱全价票,只要你要改的那天航班没满就能改.如果是折扣票,EI栏至少会有&不得签转&,指不能自愿改其他航空公司,只有在民航原因,比如航班取消,航班延误时才能任意改航班或退票.改相同航空公司其他日期的航班,要看你的机票折扣相对应的更改规定,各航空公司不同,比如如果是8折能免费改,那你要改的那天也有8折就能免费改过去,没有就只能升舱补差价,比如只有9折,那就要补8折到9折的差价.如果不能免费改,比如如果规定5折收10%更改费的话,那你要改的那天有5折,定法翅盒俨谷愁贪传楷就得付你现在票价部分的10%费用,如果只有高一些的舱位,一般来说是更改费与舱位差价来比较,取高的.具体要看你是什么航空公司的几折票,以及要改的日期,各航空公司都有自己的更改规定,不一样的.
解决方案2:看看机票上写没写不得签转如果有就不能改了 没有的话可以改 但要收取退票费
解决方案3:一般情况下是可以的,你可以打你所订票的航空公司或去你买票的代理网点。
解决方案4:除了特价机票和团体票外是可以的。
解决方案5:3折以下不行
1个回答1个回答1个回答1个回答1个回答1个回答1个回答1个回答1个回答12个回答
相关文章:
<a href="/cse/search?q=<inputclass="s-btn"type="submit"text="<inputclass="s-btn"type="submit"text="<buttonhidefocusclass="s-btnjs-ask-btn"text="我要提问
<a href="/cse/search?q=您的当前位置:>>
广州公务员
广州市考报名已经结束了,可我发现我把毕业时间填错了,怎么办啊,还能改回来吗?
疏忽大意,毕业时间填错了一年,请问还能不能&改回来。
&广东公务员考试网的回复
不能修改。感谢你对广东公务员考试网的关注。
广东公务员考试网
考生咨询热词

我要回帖

更多关于 执行中发现判决错误 的文章

 

随机推荐