日期对话框和时间对话框的使用是安卓系统比较重要的内容,下面我们来介绍一下它的实现方法。
这个例子实现的是在屏幕上显示圆形钟表以及文字钟表,点击两个按钮分别弹出时间对话框和日期对话框。
整体思路:AnalogClock、DigitalClock这两个控件是直接在屏幕上显示圆形钟表以及文字钟表的,在活动中定义年月日时分五个变量,实例化一个Calendar类,用于获取当前的年月日时分,并赋值给五个变量,在OnClick事件中分别实例化日期对话框和时间对话框并显示,实现SetListener用于对设置好的日期和时间以Toast的方式进行显示。
activity_main.xml文件:
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
>
<AnalogClock
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/>
<DigitalClock
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="18dp"
/>
<Button
android:id="@+id/button1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="显示TimePickerDialog"
/>
<Button
android:id="@+id/button2"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="显示DatePickerDialog"
/>
MainActivity.java文件:
public class MainActivity extends Activity implements OnClickListener{
private Button button1,button2;
private int hourOfDay,minute;
private int year,monthOfYear,dayOfMonth;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button1=(Button)findViewById(R.id.button1);
button2=(Button)findViewById(R.id.button2);
button1.setOnClickListener(this);
button2.setOnClickListener(this);
// 获取当前的时间,获取小时和分钟
Calendar calendar=Calendar.getInstance();
hourOfDay=calendar.get(Calendar.HOUR_OF_DAY);
minute=calendar.get(Calendar.MINUTE);
year=calendar.get(Calendar.YEAR);
monthOfYear=calendar.get(Calendar.MONTH);
dayOfMonth=calendar.get(calendar.DAY_OF_MONTH);
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.button1:
TimePickerDialog timePickerDialog=new TimePickerDialog(MainActivity.this,new MyTimePickerDialog(),hourOfDay,minute,true);
timePickerDialog.show();//显示对话框
break;
case R.id.button2:
DatePickerDialog datePickerDialog=new DatePickerDialog(MainActivity.this,new MyDatePickerDialog(),year,monthOfYear,dayOfMonth);
datePickerDialog.show();//显示对话框
break;
}
}
public class MyTimePickerDialog implements TimePickerDialog.OnTimeSetListener{
public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
// TODO Auto-generated method stub
Toast.makeText(MainActivity.this, "hourOfDay:"+hourOfDay+" minute:"+minute, 1).show();
}
}
public class MyDatePickerDialog implements DatePickerDialog.OnDateSetListener{
public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
// TODO Auto-generated method stub
Toast.makeText(MainActivity.this, "year:"+year+" monthOfYear:"+(monthOfYear+1)+" dayOfMonth:"+dayOfMonth, 1).show();
}
}
}