Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
DatePickerDialog在android 5.1中显示时区更改时的异常行为_Android_Datepickerdialog - Fatal编程技术网

DatePickerDialog在android 5.1中显示时区更改时的异常行为

DatePickerDialog在android 5.1中显示时区更改时的异常行为,android,datepickerdialog,Android,Datepickerdialog,我必须用DatePickerDialog显示日历 使用以下代码: 导入java.text.DateFormat; 导入java.text.ParseException; 导入java.text.simpleDataFormat; 导入java.util.Calendar; 导入java.util.Date; 导入java.util.TimeZone; 导入android.app.Activity; 导入android.app.AlarmManager; 导入android.app.DatePi

我必须用DatePickerDialog显示日历

使用以下代码:

导入java.text.DateFormat; 导入java.text.ParseException; 导入java.text.simpleDataFormat; 导入java.util.Calendar; 导入java.util.Date; 导入java.util.TimeZone; 导入android.app.Activity; 导入android.app.AlarmManager; 导入android.app.DatePickerDialog; 导入android.app.Dialog; 导入android.content.BroadcastReceiver; 导入android.content.Context; 导入android.content.Intent; 导入android.content.IntentFilter; 导入android.os.Bundle; 导入android.view.view; 导入android.view.view.OnClickListener; 导入android.widget.Button; 导入android.widget.CalendarView; 导入android.widget.DatePicker; 导入android.widget.DatePicker.OnDateChangedListener; 导入android.widget.TextView; 导入android.widget.Toast; 公共类DatePickerExample扩展活动{ 私有文本视图输出; 私人按钮更改日期; 私有布尔值mEnableNativeCalGridView=null; 字符串时区; 公共静态时区; 私人国际年; 私人整数月; 日期选择器对话框d; 公历c; 简化格式sdf; 私人国际日; 公共静态IntentFilter s_IntentFilter; 静态最终整数日期选择器ID=1111; 静态{ s_intentFilter=新的intentFilter; s_intentFilter.addActionIntent.ACTION_TIME_勾选; s\u intentFilter.addActionIntent.ACTION\u时区\u已更改; s_intentFilter.addActionIntent.ACTION_TIME_已更改; } @凌驾 public void onCreateBundle savedInstanceState{ super.onCreatesavedInstanceState; setContentViewR.layout.main; registerReceiverm\u timeChangedReceiver,s\u intentFilter; 输出=TextView findViewByIdR.id.Output; changeDate=按钮findViewByIdR.id.changeDate; //sdf=新简化格式,MMM d,yy;//01年7月4日星期三 //显示当前日期 Output.setTextnew StringBuilder //月份以0为基础,只需添加1 .appendmonth+1.append-.appendday.append- .appendyear.append; //显示日期选择器对话框的按钮侦听器 changeDate.SetOnClickListener新建OnClickListener{ @压制 @凌驾 公共视图v{ //在按钮上单击“显示日期选择器对话框” showDialogDATE\u PICKER\u ID; } }; } @凌驾 受保护的无效onPrepareDialogint id,对话框{ 交换机id{ 案例日期\u选取者\u ID: DatePickerDialog dialog.updateDate c、 getCalendar.YEAR, c、 getCalendar.MONTH, c、 getCalendar.DAY\u OF\u MONTH; } } @凌驾 受保护的对话框onCreateDialogint id{ 交换机id{ 案例日期\u选取者\u ID: //打开日期选择器对话框。 //为当前日期设置日期选择器 //将pickerListener列表添加到日期选择器 sdf=新简化格式MMM dd HH:mm:ss z yyyy; tz=TimeZone.getDefault; System.out.printlnTimeZone+tz.getDisplayNamefalse,TimeZone.SHORT+Timezon id::+tz.getID; timeZone=tz.getDisplayNamefalse,timeZone.SHORT; c=Calendar.getInstance; c、 setTimeZonetz; 年=c.getCalendar.year; 月=c.getCalendar.month; day=c.getCalendar.day(每月的第天); d=新建日期选择器DialogDatePickerExample.this,pickerListener,年、月、日; setMinMaxdate; 返回d; } 返回null; } ////////////////////OS 5.1上的问题修复////////////////////// 公共长getDateFormattedString日期{ 字符串givenDateString=日期; 长时间单位毫秒=0; 试试{ 日期mDate=sdf.parsegivendestring; timeinmillizes=mDate.getTime; System.out.printlnDate(以毫秒为单位):+时间(以毫秒为单位); }捕获异常{ e、 打印跟踪; } 返回时间(毫秒); } ////////////////////////////////////////// 私有DatePicker.OnDateChangedListener newchange=新OnDateChangedListener{ @凌驾 公共无效onDateChangedDatePicker视图, 整年,整月,整月{ Toast.makeTextgetApplicationContext, 改变日期,吐司。长度\短。显示; }}; 日期选择器; 公共无效setMinMaxdate{ //时区计算 //TimeZone.setDefaulttz; /////////////////////// long calEvtEndDate=getDateFormattedSun May 31 23:59:59+时区+2015;//System.currentTimeMillis; 长calEvtStartDate=getDateF 2015年5月13日00:00:00+时区+2015//System.currentTimeMillis/2; //long calEvtEndDate=getDateFormattedSun,2015年5月31日; //long calEvtStartDate=getDateFormattedWed,2015年5月13日; ifd!=空的{ datePicker=d.getDatePicker; ifmEnableNativeCalGridView!=null{ datePicker.SetCalendarViewShownEnablentiveCalGridView.booleanValue; } //如果开始日期大于结束日期,则显示从有效开始日期开始的日期 //值,并且我们没有设置maxdate。 如果calEvtStartDate>calEvtEndDate{ datePicker.setMinDatecalEvtStartDate; }否则{ 如果calEvtStartDate>0{//如果只提供了ValidStartDate,则设置minDate。 datePicker.setMinDatecalEvtStartDate; } 如果calEvtEndDate>0{//如果只提供ValidEnd date,则设置maxDate。 datePicker.setMaxDatecalEvtEndDate; } } } } @凌驾 恢复时受保护的无效{ //TODO自动生成的方法存根 super.onResume; System.out.println----恢复; } public DatePickerDialog.OnDateSetListener pickerListener=新建DatePickerDialog.OnDateSetListener{ //当对话框关闭时,将调用下面的方法。 @凌驾 公共void onDateSetDatePicker视图,int selectedYear, int selectedMonth,int selectedDay{ //view.updateDateyear、month、day; System.out.println----------datesetchange; 年份=所选年份; 月份=选择的月份; day=所选日期; //显示所选日期 Output.setTextnew StringBuilder.appendmonth+1 .append-.appendday.append-.appendyear 追加 } }; 公共无效onDestroy{ 超重力; 未注册的接收人/时间变更接收人; } 专用最终广播接收器m_timeChangedReceiver=新广播接收器{ @凌驾 接收上下文上下文、意图上的公共无效{ 最终字符串操作=intent.getAction; 如果action.equalsIntent.action\u时间发生更改|| action.equalsIntent.action\u时区\u已更改 { System.out.printlntimezone已更改--+action.toString; tz=TimeZone.getDefault; System.out.printlnTimeZone+tz.getDisplayNamefalse,TimeZone.SHORT+Timezon id::+tz.getID; timeZone=tz.getDisplayNamefalse,timeZone.SHORT; //Intent intent1=getIntent; //完成; //startactivityinent1; showDialogDATE\u PICKER\u ID; } } }; }