时间日期进程会用到平时的开发中,android内置了两种可交互的时间日期控件,一种是对话框形式的,一种是内嵌式的。

分别使用了android的类TimePickerDialog、DatePickerDialog以及TimePicker,其中TimePicker需要在layout中进行设置


对话框形式的时间控件

public class DateDialog extends Activity {    // where we display the selected date and time    private TextView mDateDisplay;    // date and time    private int mYear;    private int mMonth;    private int mDay;    private int mHour;    private int mMinute;    static final int TIME_DIALOG_ID = 0;    static final int DATE_DIALOG_ID = 1;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.date_widgets_example_1);        mDateDisplay = (TextView) findViewById(R.id.dateDisplay);        Button pickDate = (Button) findViewById(R.id.pickDate);        pickDate.setOnClickListener(new View.OnClickListener() {            public void onClick(View v) {                showDialog(DATE_DIALOG_ID);            }        });        Button pickTime = (Button) findViewById(R.id.pickTime);        pickTime.setOnClickListener(new View.OnClickListener() {            public void onClick(View v) {                showDialog(TIME_DIALOG_ID);            }        });        final Calendar c = Calendar.getInstance();        mYear = c.get(Calendar.YEAR);        mMonth = c.get(Calendar.MONTH);        mDay = c.get(Calendar.DAY_OF_MONTH);        mHour = c.get(Calendar.HOUR_OF_DAY);        mMinute = c.get(Calendar.MINUTE);        updateDisplay();    }    @Override    protected Dialog onCreateDialog(int id) {        switch (id) {            case TIME_DIALOG_ID:                return new TimePickerDialog(this,                        mTimeSetListener, mHour, mMinute, false);            case DATE_DIALOG_ID:                return new DatePickerDialog(this,                            mDateSetListener,                            mYear, mMonth, mDay);        }        return null;    }    @Override    protected void onPrepareDialog(int id, Dialog dialog) {        switch (id) {            case TIME_DIALOG_ID:                ((TimePickerDialog) dialog).updateTime(mHour, mMinute);                break;            case DATE_DIALOG_ID:                ((DatePickerDialog) dialog).updateDate(mYear, mMonth, mDay);                break;        }    }        private void updateDisplay() {        mDateDisplay.setText(            new StringBuilder()                    // Month is 0 based so add 1                    .append(mMonth + 1).append("-")                    .append(mDay).append("-")                    .append(mYear).append(" ")                    .append(pad(mHour)).append(":")                    .append(pad(mMinute)));    }    private DatePickerDialog.OnDateSetListener mDateSetListener =            new DatePickerDialog.OnDateSetListener() {                public void onDateSet(DatePicker view, int year, int monthOfYear,                        int dayOfMonth) {                    mYear = year;                    mMonth = monthOfYear;                    mDay = dayOfMonth;                    updateDisplay();                }            };    private TimePickerDialog.OnTimeSetListener mTimeSetListener =            new TimePickerDialog.OnTimeSetListener() {                public void onTimeSet(TimePicker view, int hourOfDay, int minute) {                    mHour = hourOfDay;                    mMinute = minute;                    updateDisplay();                }            };    private static String pad(int c) {        if (c >= 10)            return String.valueOf(c);        else            return "0" + String.valueOf(c);    }}

内嵌式时间控件

public class DateIncline extends Activity {    // where we display the selected date and time    private TextView mTimeDisplay;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.date_widgets_example_2);        TimePicker timePicker = (TimePicker) findViewById(R.id.timePicker);        timePicker.setCurrentHour(12);        timePicker.setCurrentMinute(15);        mTimeDisplay = (TextView) findViewById(R.id.dateDisplay);        updateDisplay(12, 15);        timePicker.setOnTimeChangedListener(new TimePicker.OnTimeChangedListener() {            public void onTimeChanged(TimePicker view, int hourOfDay, int minute) {                updateDisplay(hourOfDay, minute);            }        });    }    private void updateDisplay(int hourOfDay, int minute) {        mTimeDisplay.setText(                    new StringBuilder()                    .append(pad(hourOfDay)).append(":")                    .append(pad(minute)));    }    private static String pad(int c) {        if (c >= 10)            return String.valueOf(c);        else            return "0" + String.valueOf(c);    }}


更多相关文章

  1. Android版本更新实现
  2. Android(安卓)Profiler in Android(安卓)Studio 2.4 preview
  3. 安卓学习(初)第三章(1)(《第一行代码》)
  4. RelativeLayout相对布局和LinearLayout线性布局属性
  5. 《宅男的android开发指南》(翻译)--8
  6. Android进阶(二十二)设置TextView文字水平垂直居中
  7. Android常用控件之悬浮窗
  8. Android自带的时间空间和日期控件
  9. 《Android开发从零开始》——13.Table Layout学习

随机推荐

  1. Android(安卓)TelephonyManager类用法
  2. Android(安卓)WebView 加载网页遇到的问
  3. android写入任意路径中
  4. Android(安卓)ProgressDialog设置透明程
  5. android调用本地录制程序获取录制文件路
  6. Android(安卓)通过CANVAS旋转 绘制文字
  7. Android基于TitleBar页面导航实现
  8. Android(安卓)Demos 示例BitmapMesh中部
  9. android 用到的技巧集
  10. Android的support v4中的Fragment的一个B