Android对话框(三)
本文采用一个简单的例子解释DatePickerDialog、和TimePickerDialog的使用方法。
.XML文件内容如下
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical">
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/button_title"
/>
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/button_title1"
/>
<TextView
android:id="@+id/textview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/hello_world"
/>
</LinearLayout>
.XML布局结果如下图显示。
.java文件如下
package com.example.datepickerdialog;
import java.util.Calendar;
import android.os.Bundle;
import android.app.Activity;
import android.app.DatePickerDialog;
import android.app.DatePickerDialog.OnDateSetListener;
import android.app.Dialog;
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.TextView;
import android.widget.TimePicker;
public class MainActivity extends Activity {
final int DIALOG_DATEPICKER=1;
final int DIALOG_TIMEPICKER=2;
Calendar c;
Button btn;
Button btn1;
String str_information="";
String str_information1="";
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
/*获取当前日期*、
*
*/
c=Calendar.getInstance();
btn=(Button)findViewById(R.id.button);
OnClickListener lsn=new OnClickListener(){
public void onClick(View v){
/*
* 当Button被单击后,改变Button上面的背景文字
* 并且打开DatePickerDialog对话框
*/
showDialog(DIALOG_DATEPICKER);
}
};
btn.setOnClickListener(lsn);
btn1=(Button)findViewById(R.id.button1);
OnClickListener lsn1=new OnClickListener(){
public void onClick(View v){
/*
* 当Button被单击后,改变Button上面的背景文字
* 并且打开DatePickerDialog对话框
*/
showDialog(DIALOG_TIMEPICKER);
}
};
btn1.setOnClickListener(lsn1);
}
protected Dialog onCreateDialog(int id){
switch(id){
case DIALOG_DATEPICKER:
OnDateSetListener lsn=new OnDateSetListener(){
public void onDateSet(DatePicker v,int y,int m,int d){
/*
* 设置好日期后的回调方法,
* 可以根据设置的内容更新用户界面,
* 或者系统时间
*/
TextView tv=(TextView)findViewById(R.id.textview);
str_information="\n您设置的日期为\n";
str_information=str_information+y+"年/"+m+"月/"+d+"日";
//tv.setText(str_information);
tv.append(str_information);
}
};
DatePickerDialog date_dialog=new DatePickerDialog(this,lsn,c.get(Calendar.YEAR),c.get(Calendar.MONTH),c.get(Calendar.DAY_OF_MONTH));
return date_dialog;
case DIALOG_TIMEPICKER:
OnTimeSetListener lsn1=new OnTimeSetListener(){
public void onTimeSet (TimePicker view, int hourOfDay, int minute) {
TextView tv=(TextView)findViewById(R.id.textview);
str_information1="\n您设置的时间为:\n";
str_information1=str_information1+hourOfDay+"时"+minute+"分\n";
tv.append(str_information1);
}
};
TimePickerDialog time_dialog=new TimePickerDialog(this,lsn1,c.get(Calendar.HOUR_OF_DAY),c.get(Calendar.MINUTE),true);
return time_dialog;
default:
return null;
}
}
}
结果如图所示:
按下Set按钮后结果如下图所示:
按下Set按钮后结果如下图所示: