日期对话框和时间对话框的使用是安卓系统比较重要的内容,下面我们来介绍一下它的实现方法。
这个例子实现的是在屏幕上显示圆形钟表以及文字钟表,点击两个按钮分别弹出时间对话框和日期对话框。
整体思路: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(); } } }