日期与时间的对话框

时间:2022-11-01 17:25:12

日期与时间的对话框

//安卓开发经常用到的日期和时间对话框,这是用系统自带的效果,主函数
public class MainActivity extends Activity {

private Button dateBtn = null;
    private Button timeBtn = null;
    private EditText et=null;
    private final static int DATE_DIALOG = 0;
    private final static int TIME_DIALOG = 1;
    private Calendar c = null;


@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
et=(EditText)findViewById(R.id.et);
       dateBtn = (Button) findViewById(R.id.dateBtn);
       timeBtn = (Button) findViewById(R.id.timeBtn);
       dateBtn.setOnClickListener(new View.OnClickListener(){
           public void onClick(View v) {
               showDialog(DATE_DIALOG);
           }
       });
       timeBtn.setOnClickListener(new View.OnClickListener(){
           public void onClick(View v) {
               showDialog(TIME_DIALOG);
           }
       });
       

}

/**
     * 创建日期及时间选择对话框
     */
    @Override
    protected Dialog onCreateDialog(int id) {
        Dialog dialog = null;
        switch (id) {
        case DATE_DIALOG:
            c = Calendar.getInstance();
            dialog = new DatePickerDialog(
                this,
                new DatePickerDialog.OnDateSetListener() {
                    public void onDateSet(DatePicker dp, int year,int month, int dayOfMonth) {
                        et.setText("您选择了:" + year + "年" + (month+1) + "月" + dayOfMonth + "日");
                    }
                }, 
                c.get(Calendar.YEAR), // 传入年份
                c.get(Calendar.MONTH), // 传入月份
                c.get(Calendar.DAY_OF_MONTH) // 传入天数
            );
            break;
        case TIME_DIALOG:
            c=Calendar.getInstance();
            dialog=new TimePickerDialog(
                this, 
                new TimePickerDialog.OnTimeSetListener(){
                    public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
                        et.setText("您选择了:"+hourOfDay+"时"+minute+"分");
                    }
                },
                c.get(Calendar.HOUR_OF_DAY),
                c.get(Calendar.MINUTE),
                false
            );
            break;
        }
        return dialog;
    }

}

//布局layout代码如下所示:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout android:id="@+id/LinearLayout01"
    android:layout_width="fill_parent" android:layout_height="fill_parent"
    android:orientation="vertical"
    xmlns:android="http://schemas.android.com/apk/res/android">
    <EditText android:id="@+id/et" 
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" 
        android:editable="false"
        android:cursorVisible="false" />
    <Button android:text="日期对话框" 
        android:id="@+id/dateBtn"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" />
    <Button android:text="时间对话框" 
        android:id="@+id/timeBtn"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" />
    <DigitalClock 
        android:text="@+id/digitalClock"
        android:textSize="20dip" 
        android:gravity="center"
        android:id="@+id/DigitalClock01" 
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" />
    <AnalogClock 
        android:id="@+id/analogClock"
        android:gravity="center" 
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" />
</LinearLayout>