Android体验系列之--DatePickerDialog、DatePicker
xml文件代码:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView
android:id="@+id/dateAndTime"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/>
<Button android:text="Set the date" android:id="@+id/dateBtn" android:layout_width="fill_parent" android:layout_height="wrap_content"></Button>
<Button android:text="Set Time" android:id="@+id/timeBtn" android:layout_width="fill_parent" android:layout_height="wrap_content"></Button>
</LinearLayout>
ChronoDemo代码:
public class ChronoDemo extends Activity{
DateFormat fmtDateAndTime=DateFormat.getDateTimeInstance();
TextView dateAndTimeLabel;
Calendar dateAndTime=Calendar.getInstance();
DatePickerDialog.OnDateSetListener d=new DatePickerDialog.OnDateSetListener(){//
public void onDateSet(DatePicker view,int year,int monthOfYear,int dayOfMonth){
dateAndTime.set(Calendar.YEAR,year);
dateAndTime.set(Calendar.MONTH,monthOfYear);
dateAndTime.set(Calendar.DAY_OF_MONTH,dayOfMonth);
updateLabel();
}
};
TimePickerDialog.OnTimeSetListener t=new TimePickerDialog.OnTimeSetListener(){ //android sdk1.1版本的教材写的是TimePicker.OnTimeSetListener t=new TimePicker.OnTimeSetListener;发现不行,参考了一下sdk1.5,有所变化,而且参数也变了
public void onTimeSet(TimePicker view,int hourOfDay,int minute){
dateAndTime.set(Calendar.HOUR,hourOfDay);
dateAndTime.set(Calendar.MINUTE,minute);
updateLabel();
}
};
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button btn=(Button)findViewById(R.id.dateBtn);
btn.setOnClickListener(new View.OnClickListener(){
public void onClick(View v){
new DatePickerDialog(ChronoDemo.this,d,dateAndTime.get(Calendar.YEAR),dateAndTime.get(Calendar.MONTH),dateAndTime.get(Calendar.DAY_OF_MONTH)).show();
}
});
btn=(Button)findViewById(R.id.timeBtn);
btn.setOnClickListener(new View.OnClickListener(){
public void onClick(View v){
new TimePickerDialog(ChronoDemo.this,t,dateAndTime.get(Calendar.HOUR),dateAndTime.get(Calendar.MINUTE),true).show();
}
});
dateAndTimeLabel=(TextView)findViewById(R.id.dateAndTime);
updateLabel();
}
private void updateLabel(){
dateAndTimeLabel.setText(fmtDateAndTime.format(dateAndTime.getTime()));
}
}
效果图: