您的位置:首页 > 移动开发 > Android开发

Android练习之DatePicker和TimePicker、DatePickerDialog和TimePickerDialog

2012-12-14 09:46 465 查看
code

View Code

package com.example.flexd6;

import java.util.Calendar;
import java.util.Date;
import java.util.Locale;

import android.os.Bundle;
import android.app.Activity;
import android.app.DatePickerDialog;
import android.app.DatePickerDialog.OnDateSetListener;
import android.app.TimePickerDialog;
import android.app.TimePickerDialog.OnTimeSetListener;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.DatePicker;
import android.widget.DatePicker.OnDateChangedListener;
import android.widget.TextView;
import android.widget.TimePicker;
import android.widget.TimePicker.OnTimeChangedListener;

/**
* 1.DatePicker和TimePicker的监听事件,触发后在TextView显示日期时间
* 2.点击Button弹出DatePickerDialog和TimePickerDialog
*/
public class MainActivity extends Activity {
//Widget
private DatePicker dp1;
private TimePicker tp1;
private TextView tv1;
private Button bt1;
private Button bt2;
//Time
private int year;
private int month;
private int day;
private int hour;
private int minute;
private int second;
private Calendar calendar = Calendar.getInstance(Locale.CHINA);

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

//Widget
dp1 = (DatePicker)findViewById(R.id.dp1);
tp1 = (TimePicker)findViewById(R.id.tp1);
tv1 = (TextView)findViewById(R.id.tv1);
bt1 = (Button)findViewById(R.id.bt1);
bt2 = (Button)findViewById(R.id.bt2);

//Listener
dp1.init(year, month, day, onDateChangedListener);//init
tp1.setOnTimeChangedListener(onTimeChangedListener);
tp1.setIs24HourView(true);//24小时制

bt1.setOnClickListener(datePickerDialogListener);
bt1.setText("DatePickerDialog");
bt2.setOnClickListener(timePickerDialogListener);
bt2.setText("TimePickerDialog");
}

/**
* OnDateChangedListener
*/
OnDateChangedListener onDateChangedListener = new OnDateChangedListener() {

@Override
public void onDateChanged(DatePicker view, int year, int monthOfYear,
int dayOfMonth) {
MainActivity.this.year = year;
MainActivity.this.month = monthOfYear + 1;//monthOfYear 0开始
MainActivity.this.day = dayOfMonth;
showTime();
}
};

/**
* OnTimeChangedListener
*/
OnTimeChangedListener onTimeChangedListener = new OnTimeChangedListener() {

@Override
public void onTimeChanged(TimePicker view, int hourOfDay, int minute) {
MainActivity.this.hour = hourOfDay;
MainActivity.this.minute = minute;
showTime();
}
};

/**
* datePickerDialogListener
*/
View.OnClickListener datePickerDialogListener = new OnClickListener(){

@Override
public void onClick(View v) {
//Calendar Init
calendar.setTime(new Date());
//calendar.setTimeInMillis(System.currentTimeMillis());

new DatePickerDialog(MainActivity.this, new OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year, int monthOfYear,
int dayOfMonth) {
MainActivity.this.year = year;
MainActivity.this.month = monthOfYear + 1;//monthOfYear 0开始
MainActivity.this.day = dayOfMonth;
showTime();
}
}, year, calendar.get(Calendar.MONTH), calendar.get(Calendar.DAY_OF_MONTH)).show();

}
};

/**
* timePickerDialogListener
*/
View.OnClickListener timePickerDialogListener = new OnClickListener() {

@Override
public void onClick(View v) {
new TimePickerDialog(MainActivity.this, new OnTimeSetListener() {

@Override
public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
MainActivity.this.hour = hourOfDay;
MainActivity.this.minute = minute;
showTime();
}
}, calendar.get(Calendar.HOUR_OF_DAY), calendar.get(Calendar.MINUTE), true).show();//is24HourView
}
};

/**
* TextView展示时间
*/
private void showTime(){
tv1.setText(year + "-" + month + "-" + day + " " + hour + ":" + minute);
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐