使用对话框形式修改时间时页面中的日期和时间没有改变
在使用对话框的形式修改日期和时间时,标题部分的日期和时间确实发生了改变,但是页面中的日期和时间并没有变。想知道如何才能让页面中的日期和时间也相应的进行改变。
在使用对话框的形式修改日期和时间时,标题部分的日期和时间确实发生了改变,但是页面中的日期和时间并没有变。想知道如何才能让页面中的日期和时间也相应的进行改变。
2016-08-30
package com.example.datetime;
import java.util.Calendar;
import android.app.Activity;
import android.app.DatePickerDialog;
import android.app.DatePickerDialog.OnDateSetListener;
import android.app.TimePickerDialog;
import android.app.TimePickerDialog.OnTimeSetListener;
import android.os.Bundle;
import android.text.style.UpdateLayout;
import android.widget.DatePicker;
import android.widget.DatePicker.OnDateChangedListener;
import android.widget.TimePicker;
import android.widget.TimePicker.OnTimeChangedListener;
public class MainActivity extends Activity {
private TimePicker time;
private DatePicker date;
private Calendar cal;
private int year;
private int month;
private int day;
private int hour;
private int minute;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//获取日历的一个对象
cal = Calendar.getInstance();
//获取年月日时分的信息
year = cal.get(Calendar.YEAR);
month = cal.get(Calendar.MONTH)+1;
day = cal.get(Calendar.DAY_OF_MONTH);
hour = cal.get(Calendar.HOUR_OF_DAY);
minute = cal.get(Calendar.MINUTE);
setTitle(year+":"+month+":"+day+":"+hour+":"+minute);
date = (DatePicker) findViewById(R.id.date);
time = (TimePicker) findViewById(R.id.time);
//初始化datePicker
date.init(year, cal.get(Calendar.MONTH), day, new OnDateChangedListener() {
@Override
public void onDateChanged(DatePicker arg0, int year, int month, int day) {
setTitle(year+":"+(month+1)+":"+day+":"+hour+":"+minute);
}
});
//初始化timePicker
time.setOnTimeChangedListener(new OnTimeChangedListener() {
@Override
public void onTimeChanged(TimePicker arg0, int hour, int minute) {
setTitle(year+":"+month+":"+day+":"+hour+":"+minute);
}
});
new DatePickerDialog(this, new OnDateSetListener() {
@Override
public void onDateSet(DatePicker arg0, int year, int month, int day) {
setTitle(year+":"+(month+1)+":"+day+":"+hour+":"+minute);
}
}, year, cal.get(Calendar.MONTH), day).show();
new TimePickerDialog(this, new OnTimeSetListener() {
@Override
public void onTimeSet(TimePicker arg0, int hour, int minute) {
setTitle(year+":"+month+":"+day+":"+hour+":"+minute);
}
}, hour, minute,true).show();
}
}
1.我这里简单的写了点击按钮更新DatePicker时间的代码:你可以将点击事件触发更新改成对话框里时间日期发生变化事件去触发。
2.你可以将 datapicker对象.updateDate(,,,);这一句添加到触发标题栏内容改变那一段代码里,就可以在更改标题栏内容的同时修改DatePicker控件的日期。
3.如果要更新TimePicker的时间使用public void setCurrentHour(Integer currentHour); //设置当前时间的小时。 public void setCurrentMinute(Integer currentMinute); //设置当前时间的分钟
final DatePicker dataPicker = (DatePicker) findViewById(R.id.datePicker1);
Button btn = (Button) findViewById(R.id.button1);
btn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
//是一个DataPicker对象
dataPicker.updateDate(2001, 0, 1);
}
});
按钮点击前画面:
按钮点击后画面:
举报