DatePicker日历选择器,TimePicker时间选择器

来源:互联网 发布:洛杉矶和纽约 知乎 编辑:程序博客网 时间:2024/04/29 07:15

理论没什么好讲的,就是一个控件的使用

直接在代码中解释啦

main.xml文件

加入控件:日历选择器,时间选择器,两个TextView用于显示你选择的日历和时间

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:orientation="vertical" >    <TextView         android:id="@+id/tv_date"        android:layout_width="match_parent"        android:layout_height="wrap_content"         />        <DatePicker        android:id="@+id/date"        android:layout_width="match_parent"        android:layout_height="wrap_content" />         <TextView         android:id="@+id/tv_time"        android:layout_width="match_parent"        android:layout_height="wrap_content"        />         <TimePicker        android:id="@+id/time"        android:layout_width="match_parent"        android:layout_height="wrap_content" /></LinearLayout>
主程序中
 //获取当前的年月日时分信息        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() {//监听日期的改变        @Overridepublic 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() {@Overridepublic void onTimeChanged(TimePicker view, int hourOfDay, int minute) {// TODO Auto-generated method stubtv_time.setText("现在时间:"+hourOfDay+":"+minute);}});

主程序全部代码:
package com.example.datetimerpicker;import java.util.Calendar;import android.app.Activity;import android.app.ActionBar;import android.app.DatePickerDialog;import android.app.Fragment;import android.os.Bundle;import android.text.method.DateTimeKeyListener;import android.util.Log;import android.view.LayoutInflater;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.view.ViewGroup;import android.widget.DatePicker;import android.widget.DatePicker.OnDateChangedListener;import android.widget.TextView;import android.widget.TimePicker;import android.widget.TimePicker.OnTimeChangedListener;import android.widget.Toast;import android.os.Build;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 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() {//监听日期的改变        @Overridepublic 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() {@Overridepublic void onTimeChanged(TimePicker view, int hourOfDay, int minute) {// TODO Auto-generated method stubtv_time.setText("现在时间:"+hourOfDay+":"+minute);}});                                              }@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.main, menu);return true;}}

下面以Dialog个形式显示日期,时间选择器(这中形式更常见)

main.xml文件

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:orientation="vertical" >    <Button        android:id="@+id/date_button"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="显示日期控件" />    <Button        android:id="@+id/time_button"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="显示时间控件" />    <TextView        android:id="@+id/tv_date"        android:layout_width="match_parent"        android:layout_height="wrap_content"         android:text="现在日期:"        />        <TextView         android:id="@+id/tv_time"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:text="现在时间:"        /></LinearLayout>

主程序文件

package com.example.datetimedialog;import java.util.Calendar;import android.app.Activity;import android.app.ActionBar;import android.app.DatePickerDialog;import android.app.DatePickerDialog.OnDateSetListener;import android.app.Fragment;import android.app.TimePickerDialog;import android.app.TimePickerDialog.OnTimeSetListener;import android.content.Context;import android.content.DialogInterface;import android.content.DialogInterface.OnClickListener;import android.os.Bundle;import android.view.LayoutInflater;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.view.ViewGroup;import android.widget.Button;import android.widget.DatePicker;import android.widget.TextView;import android.widget.TimePicker;import android.os.Build;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;@Overrideprotected 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();}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.main, menu);return true;}private void showDateDialog(){
//这个方法一共5个参数,第一个是上下文对象,第二个是监听器,后面三个是初始化的日期和时间,这里设置为获取到的系统的日期和时间
DatePickerDialog date_dialog=new DatePickerDialog(MainActivity.this, new OnDateSetListener() {@Overridepublic void onDateSet(DatePicker view, int year, int monthOfYear,int dayOfMonth) {// TODO Auto-generated method stubtv_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(){
//这个时间选择器第一个参数是上下文对象,第二个参数是监听器,后面两个参数是获取到的系统时间,最后一个参数设置设置为true表示使用24小时显示格式TimePickerDialog time_dialog=new TimePickerDialog(MainActivity.this, new OnTimeSetListener() {@Overridepublic void onTimeSet(TimePicker view, int hourOfDay, int minute) {// TODO Auto-generated method stubtv_time.setText("现在时间:"+hourOfDay+":"+minute);}}, calendar.get(Calendar.HOUR_OF_DAY), calendar.get(Calendar.MINUTE), true);time_dialog.show();}@Overridepublic void onClick(View v) {// TODO Auto-generated method stubswitch(v.getId()){  case R.id.date_button:  showDateDialog();  break;  case R.id.time_button:  showTimeDialog();  break;}}}


0 0
原创粉丝点击