android应用开发详解(九)------------------日期和时间选择对话框

来源:互联网 发布:初级编程教学视频教程 编辑:程序博客网 时间:2024/05/29 09:12

女生只有在自己喜欢的男生面前可以变成女生,其他时候必须像个爷们儿一样去奋斗!


步骤:

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

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

(3)调用Activity的showDialog()方法显示对话框

1、演示结果



2、主文件

package com.example.test;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.app.DatePickerDialog.OnDateSetListener;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 {private Button datebtn,timebtn;private TextView datetv,timetv;private Calendar calendar;private int year,month,day,hour,minute;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        datebtn=(Button)findViewById(R.id.datebutton);        timebtn=(Button)findViewById(R.id.timebutton);        datetv=(TextView)findViewById(R.id.datetextview);        timetv=(TextView)findViewById(R.id.timetextview);        calendar=Calendar.getInstance();        year=calendar.get(Calendar.YEAR);        month=calendar.get(Calendar.MONTH);        day=calendar.get(Calendar.DAY_OF_MONTH);        hour=calendar.get(Calendar.HOUR_OF_DAY);        minute=calendar.get(Calendar.MINUTE);        datetv.setText(year+":"+month+":"+day);timetv.setText(hour+":"+minute);        datebtn.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View arg0) {// TODO Auto-generated method stubshowDialog(0);}});        timebtn.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View arg0) {// TODO Auto-generated method stubshowDialog(1);}});    }    protected Dialog onCreateDialog(int id){if(id==0)return new DatePickerDialog(this, l1, year, month, day);elsereturn new TimePickerDialog(this, l2, hour, minute, true);        }    private OnDateSetListener l1 = new OnDateSetListener() {@Overridepublic void onDateSet(DatePicker arg0, int arg1, int arg2, int arg3) {// TODO Auto-generated method stubyear=arg1;month=arg2;day=arg3;datetv.setText(year+":"+(month+1)+":"+day);}};private OnTimeSetListener l2 = new OnTimeSetListener() {@Overridepublic void onTimeSet(TimePicker arg0, int arg1, int arg2) {// TODO Auto-generated method stubhour=arg1;minute=arg2;timetv.setText(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.main, menu);        return true;    }    }

3、布局文件

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:gravity="center_horizontal"    android:orientation="vertical" >    <TextView        android:id="@+id/datetextview"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="日期" />    <Button        android:id="@+id/datebutton"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="显示日期对话框" />    <TextView        android:id="@+id/timetextview"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="时间" />    <Button        android:id="@+id/timebutton"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="显示时间对话框" /></LinearLayout>

【第一遍做的时候,不知道为什么,怎么都不显示对话框,又新建了一个android工程才成功?!!】



0 0