【android控件学习笔记】DatePicker TimePicker

1、DatePicker 和 TimePicker
DatePicker对象以init()这个方法来指定DatePicker的初始年月日和OnDatePickerChangedListener的。而TimePicker则是直接setOnTimeChangedListener()来处理时间改变的。

public class MainActivity extends Activity {
    private DatePicker date_picker;
    private TimePicker time_picker;
    private TextView tv_date;
    private TextView tv_time;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        //初始化
        date_picker=(DatePicker) findViewById(R.id.date);
        time_picker=(TimePicker) findViewById(R.id.time);
        tv_date=(TextView) findViewById(R.id.tv_date);
        tv_time=(TextView) findViewById(R.id.tv_time);

      //通过Calendar.getInstance()获得calender对象然后再从Calender对象中获取当前的年月日时分

        Calendar c=Calendar.getInstance();
        int year = c.get(Calendar.YEAR);
        int month=c.get(Calendar.MONTH);
        int day=c.get(Calendar.DAY_OF_MONTH);
        int hour=c.get(Calendar.HOUR_OF_DAY);
        int minute=c.get(Calendar.MINUTE);
        tv_date.setText("现在日期:"+year+"-"+(month+1)+"-"+day);
        tv_time.setText("现在时间:"+hour+":"+minute);

        //初始化日期

        date_picker.init(year, month, day, new OnDateChangedListener(){

            //监听日期的改变

            public void onDateChanged(DatePicker view, int year, int monthOfYear,
                    int dayOfMonth) {
                // TODO Auto-generated method stub
                //Toast.makeText(MainActivity.this, "现在时间:"+year+"-"+(monthOfYear+1)+"-"+dayOfMonth, 0).show();
                tv_date.setText("现在日期:"+year+"-"+(monthOfYear+1)+"-"+dayOfMonth);   
            }
        });

        //设置时间为24小时制
        time_picker.setIs24HourView(true);
//监听时间的改变
        time_picker.setOnTimeChangedListener(new OnTimeChangedListener() {  
            @Override
            public void onTimeChanged(TimePicker view, int hourOfDay, int minute) {
                // TODO Auto-generated method stub
                tv_time.setText("现在时间:"+hourOfDay+":"+minute);
            }
        }); 

    }   
   }

2、DatePickerDialog和TimePickerDialog
DatePicker 和 TimePicker是直接显示在屏幕上的,DatePickerDialog和TimePickerDialog是以Dialog的方式弹出的。

public class MainActivity extends Activity implements android.view.View.OnClickListener{

    private Button date_button;
    private Button time_button;
    private Calendar calendar;
    private TextView tv_date;
    private TextView tv_time;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        date_button=(Button) findViewById(R.id.date_button);
        time_button=(Button) findViewById(R.id.time_button);
        tv_date=(TextView) findViewById(R.id.tv_date);
        tv_time=(TextView) findViewById(R.id.tv_time);
        date_button.setOnClickListener(this);
        time_button.setOnClickListener(this);
        //获取当前的年月日时分信息
        calendar=Calendar.getInstance();
    }

    private void showDateDialog()
    {
        DatePickerDialog date_dialog=new DatePickerDialog(MainActivity.this, new OnDateSetListener() {

            public void onDateSet(DatePicker view, int year, int monthOfYear,int dayOfMonth) {
                // TODO Auto-generated method stub
                tv_date.setText("现在日期:"+year+"-"+(monthOfYear+1)+"-"+dayOfMonth);
            }
        }, calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH), calendar.get(Calendar.DAY_OF_MONTH));

        date_dialog.show();
    }

    private void showTimeDialog()
    {
        TimePickerDialog time_dialog=new TimePickerDialog(MainActivity.this, new OnTimeSetListener() {

            @Override
            public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
                // TODO Auto-generated method stub
                tv_time.setText("现在时间:"+hourOfDay+":"+minute);
            }
        }, calendar.get(Calendar.HOUR_OF_DAY), calendar.get(Calendar.MINUTE), true);
        time_dialog.show();
    }

    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub
        switch(v.getId())
        {
          case R.id.date_button:
              showDateDialog();
              break;
          case R.id.time_button:
              showTimeDialog();
              break;
        }
    }

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值