日期对话框和时间对话框是android开发中使用比较少的一种对话框显示方式,这里我们也介绍它们的使用方式。
整体思路:在xml文件中定义两个button控件,并在activity中设置它们的点击事件,定义一个Calendar类,初始化年、月、日、小时、分钟,在第一个点击事件中,定义一个DatePickerDialog对象,显示日期对话框并定义它的选择日期的触发事件,在第二个点击事件中,定义一个TimePickerDialog对象,显示时间对话框并定义它的选择时间的触发事件。
MainActivity.java文件:
public class MainActivity extends Activity {
private Button button,button2;
private int year,monthOfYear,dayOfMonth;//初始化年月日
private int hourOfDay,minute;//初始化小时、分钟
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button=(Button)findViewById(R.id.button1);
button2=(Button)findViewById(R.id.button2);
// 初始化年月日的日期
Calendar calendar=Calendar.getInstance();
year=calendar.get(Calendar.YEAR);
monthOfYear=calendar.get(Calendar.MONTH);
dayOfMonth=calendar.get(Calendar.DAY_OF_MONTH);
// 初始化小时和分钟
hourOfDay=calendar.get(Calendar.HOUR_OF_DAY);
minute=calendar.get(Calendar.MINUTE);
// 完成对年月日的初始化
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
DatePickerDialog datePickerDialog=new DatePickerDialog(MainActivity.this, new OnDateSetListener() {
@Override
public void onDateSet(DatePicker arg0, int year, int monthOfYear, int dayOfMonth) {
// 当用户选择日期的时候会触发
// 2013年-4月-5日
String string=year+"年-"+monthOfYear+"月-"+dayOfMonth+"日";
Toast.makeText(MainActivity.this, string, 1).show();
}
}, year, monthOfYear, dayOfMonth);
datePickerDialog.show();
}
});
button2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
TimePickerDialog dialog=new TimePickerDialog(MainActivity.this, new OnTimeSetListener() {
@Override
public void onTimeSet(TimePicker arg0, int hourOfDay, int minute) {
// TODO Auto-generated method stub
String string=hourOfDay+"时:"+minute+"分";
Toast.makeText(MainActivity.this, string, 1).show();
}
}, hourOfDay, minute, true);//true表示选择的是24小时
dialog.show();
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}