欢迎访问移动开发之家(rcyd.net),关注移动开发教程。移动开发之家  移动开发问答|  每日更新
页面位置 : > > > 内容正文

android--日期时间控件

来源: 开发者 投稿于  被查看 32546 次 评论:119

android--日期时间控件


一、先看看实现的效果:

\

点击日期2015-03-24会弹出选择日期的对话框

\

点击时间,则弹出时间的对话框

\

二、代码如下:

1.xml文件

 

2.后台代码如下

 

 

package com.example.time;

import java.sql.Date;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Locale;

import android.os.Bundle;
import android.app.Activity;
import android.app.DatePickerDialog;
import android.app.TimePickerDialog;
import android.util.Log;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.DatePicker;
import android.widget.TextView;
import android.widget.TimePicker;

public class MainActivity extends Activity {

	private final static String TAG=TimeDate;
	   //获取日期格式器对象
    DateFormat fmtDate = new java.text.SimpleDateFormat(yyyy-MM-dd);
    
    DateFormat fmtTime = new java.text.SimpleDateFormat(HH:mm:ss);
    
    //定义一个TextView控件对象
    TextView txtDate = null;
    TextView txtTime = null;
    //获取一个日历对象
    Calendar dateAndTime = Calendar.getInstance(Locale.CHINA);
    
    
    //当点击DatePickerDialog控件的设置按钮时,调用该方法
    DatePickerDialog.OnDateSetListener d = new DatePickerDialog.OnDateSetListener()
    {
        @Override
        public void onDateSet(DatePicker view, int year, int monthOfYear,
                int dayOfMonth) {
            //修改日历控件的年,月,日
            //这里的year,monthOfYear,dayOfMonth的值与DatePickerDialog控件设置的最新值一致
            dateAndTime.set(Calendar.YEAR, year);
            dateAndTime.set(Calendar.MONTH, monthOfYear);
            dateAndTime.set(Calendar.DAY_OF_MONTH, dayOfMonth);    
            //将页面TextView的显示更新为最新时间
            upDateDate();   
            
        }        
    };
    
    TimePickerDialog.OnTimeSetListener t = new TimePickerDialog.OnTimeSetListener() {
        
        //同DatePickerDialog控件
        @Override
        public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
            dateAndTime.set(Calendar.HOUR_OF_DAY, hourOfDay);
            dateAndTime.set(Calendar.MINUTE, minute);
            upDateTime();
            
        }
    }; 
    
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		
		Log.d(TAG,onCreate);
		txtDate =(TextView)findViewById(R.id.txtDate);
		txtDate.setClickable(true);  
		txtDate.setFocusable(true);
		txtTime =(TextView)findViewById(R.id.txtTime);
		txtTime.setClickable(true);  
		txtTime.setFocusable(true);
		
		txtDate.setOnClickListener(new OnClickListener(){  
		        @Override  
		        public void onClick(View v){  
		            Log.d(TAG,txtDate click start);  
		            DatePickerDialog  dateDlg = new DatePickerDialog(MainActivity.this,
		                    d,
		                    dateAndTime.get(Calendar.YEAR),
		                    dateAndTime.get(Calendar.MONTH),
		                    dateAndTime.get(Calendar.DAY_OF_MONTH));
		         
		            dateDlg.show();
		            
		            Log.d(TAG,Date show);
		     }
		   });
		
		txtTime.setOnClickListener(new OnClickListener(){  
	        @Override  
	        public void onClick(View v){  
	            Log.d(TAG,txtTime click start); 
	            Log.d(TAG,Date show);
	            TimePickerDialog timeDlg = new TimePickerDialog(MainActivity.this,
	                    t,
	                    dateAndTime.get(Calendar.HOUR_OF_DAY),
	                    dateAndTime.get(Calendar.MINUTE),
	                    true);
	            timeDlg.show();
	     }
	   });
		
		upDateDate();
		upDateTime();
	}
	
    private void upDateDate() {
    	txtDate.setText(fmtDate.format(dateAndTime.getTime()));
        }
   
    private void upDateTime() {
    	txtTime.setText(fmtTime.format(dateAndTime.getTime()));
        }


	@Override
	public 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;
	}

}


 

 

用户评论