您的位置:首页 > 产品设计 > UI/UE

Android学习:用户界面UI之日期和时间对话框

2013-05-30 22:20 344 查看
DatePickerDialog、TimePickerDialog(日期和时间对话框)

创建步骤如下:

1、调用Activity的onCreateDialog()方法创建对话框。

2、分别在OnDateSetListener的onDateSet()方法和OnTimeSetListener的onTimeSet()方法中更改日期和时间。

3、调用Activity的showDialog()显示对话框。(当系统调用showDialog时,会根据ID去onCreateDialog中查找对应的对话框)

package com.jwt.chp04;

import java.util.Calendar;

import android.os.Bundle;
import android.app.Activity;
import android.app.DatePickerDialog;
import android.app.Dialog;
import android.app.TimePickerDialog;
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 DateTimeActivity extends Activity {

private TextView lblShow;
private Button btnDate;
private Button btnTime;

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

lblShow = (TextView) findViewById(R.id.lblDTAShow);
btnDate = (Button) findViewById(R.id.btnDTADatePicker);
btnTime = (Button) findViewById(R.id.btnDTATimePicker);

btnDate.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
showDialog(0);// 注意此处与onCreateDialog的关系
}
});
btnTime.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
showDialog(1);// 注意此处与onCreateDialog的关系
}
});
}

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

// onCreateDialog与showDialog是对应的,系统遇到了showDialog就去找onCreateDialog创建
@Override
protected Dialog onCreateDialog(int id) {
Dialog d = null;
Calendar c = Calendar.getInstance();
switch (id) {
case 0:
d = new DatePickerDialog(this,
new DatePickerDialog.OnDateSetListener() {

@Override
public void onDateSet(DatePicker view, int year,
int monthOfYear, int dayOfMonth) {
lblShow.setText("您选择了" + year + "-" + monthOfYear
+ "-" + dayOfMonth);
}
}, c.get(Calendar.YEAR), c.get(Calendar.MONTH),
c.get(Calendar.DAY_OF_MONTH));
break;
case 1:

d = new TimePickerDialog(this,
new TimePickerDialog.OnTimeSetListener() {

@Override
public void onTimeSet(TimePicker arg0, int arg1,
int arg2) {
lblShow.setText("您选择了" + arg1 + ":" + arg2);
}
}, c.get(Calendar.HOUR), c.get(Calendar.MONDAY), false);
break;
}
return d;
}

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