对话框的DatePicker和TimePicker的使用(学习笔记)

来源:互联网 发布:java创建一个学生类 编辑:程序博客网 时间:2024/05/01 04:16
布局xml部分,使用了自定义的控件View_try1,其使用方法跟一般的Button控件类似。这里权且把它当做Button。

然后是activity:

package com.example.diy_view;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Locale;import android.os.Bundle;import android.annotation.SuppressLint;import android.app.Activity;import android.app.DatePickerDialog;import android.app.TimePickerDialog;import android.view.View;import android.view.View.OnClickListener;import android.widget.DatePicker;import android.widget.TextView;import android.widget.TimePicker;public class MainActivity extends Activity implements OnClickListener{    View_try1 imageBtn1,imageBtn2;    final int DATE = 1;    final int TIME = 2;    TextView daTextView,timeTextView;    Calendar calendar =Calendar.getInstance(Locale.CHINA);//全局使用的calendar    @Override    protected void onCreate(Bundle savedInstanceState) {        // TODO Auto-generated method stub        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        imageBtn1=(View_try1) this.findViewById(R.id.btn_right);        imageBtn2=(View_try1) this.findViewById(R.id.btn_error);        imageBtn1.setTextViewText("打开时间选择");        imageBtn2.setTextViewText("打开日期选择");        imageBtn1.setImageResource(R.drawable.blue);        imageBtn2.setImageResource(R.drawable.blue);        imageBtn1.setOnClickListener(this);        imageBtn2.setOnClickListener(this);//以上是根据自定义控件的方法进行的预定义        daTextView = (TextView)findViewById(R.id.textView2);//用来显示日期的TextView        timeTextView = (TextView)findViewById(R.id.textView3);//用来显示时间的TextView    }    private DatePickerDialog.OnDateSetListener listener = //用于检测日期设定器的变化            new DatePickerDialog.OnDateSetListener(){          @Override        public void onDateSet(DatePicker arg0, int arg1, int arg2, int arg3) {            calendar.set(Calendar. YEAR , arg1);//重置年份            calendar.set(Calendar. MONTH , arg2);//重置月份            calendar.set(Calendar. DAY_OF_MONTH , arg3);//重置日期            update(DATE);//调用更新日期显示        }    };     private TimePickerDialog.OnTimeSetListener listener2 = //用于检测时间设定器的变化            new TimePickerDialog.OnTimeSetListener() {                @Override                public void onTimeSet(TimePicker view, int hourOfDay, int minute) {                    // TODO Auto-generated method stub                    calendar.set(Calendar.HOUR_OF_DAY, hourOfDay);//设置小时                    calendar.set(Calendar.MINUTE, minute);//调用分钟                update(TIME);//调用更新时间显示                }            };    @SuppressLint("SimpleDateFormat")    private void update(int dt) {//case一下是改变日期还是时间        switch (dt) {        case DATE:            SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd"); //创建日期格式            daTextView.setText(simpleDateFormat.format(calendar.getTime()));//按照最新的calendar更新日期显示            break;        case TIME:            SimpleDateFormat simpleTimeFormat = new SimpleDateFormat("HH-mm");//创建时间格式            timeTextView.setText(simpleTimeFormat.format(calendar.getTime()));//按照最新的calendar更新时间显示            break;        default:            break;        }    }    @Override    public void onClick(View v) {        // TODO Auto-generated method stub        switch (v.getId()) {        case R.id.btn_right:            new DatePickerDialog(MainActivity.this,listener,                    calendar.get(Calendar. YEAR ),                    calendar.get(Calendar. MONTH ),                    calendar.get(Calendar. DAY_OF_MONTH )                    ).show();    //调用对话框的DatePicker            break;        case R.id.btn_error:            new TimePickerDialog(MainActivity.this, listener2,                     Calendar.HOUR_OF_DAY, Calendar.MINUTE, true).show();//调用对话框的TimerPicker            break;        default:            break;        }    }}


原创粉丝点击