日期及时间选择对话框

在values的string.xml中加入如下代码:

<?xml version="1.0" encoding="utf-8"?>

<resources>


    <string name="app_name">DateTimePickerDialog</string>
    <string name="hello_world">Hello world!</string>
    <string name="action_settings">Settings</string>
    <string name="date">日期对话框</string>
    <string name="time">时间对话框</string>


</resources>

在main.xml中我们加入如下代码:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.example.datetimepickerdialog.MainActivity" >


    <EditText 
        android:id="@+id/editText"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:editable="false"
        android:cursorVisible="false"
        />
    <Button
        android:id="@+id/btnDate"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/editText"
        android:layout_below="@+id/editText"
        android:text="@string/date" />
    <Button 
        android:id="@+id/btnTime"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="@string/time"
        android:layout_below="@id/btnDate"
        />
    <DigitalClock 
        android:id="@+id/digitalClock"
        android:text="@+id/digitalClock"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:textSize="20dip"
        android:gravity="center"
        android:layout_below="@id/btnTime"
        />
    <AnalogClock 
        android:id="@+id/analogClock"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:layout_below="@id/digitalClock"
        />


</RelativeLayout>

我也是个初学者,在这个代码写完之后,我并没有发现里面的DigitalClock和AnalogClock有什么用,因为下面的MainActivity函数并没有涉及到这两个按钮,而且上面的时间并不受控制,基本是无用的,但是里面主要针对的就是对话框,所以在两个button按钮中加入了两个对话框。具体的看到MainActi.java代码后自然会明白

其代码如下:这里面有很多以前涉及到的知识和没有涉及到的,我在后面都加以注释:

package com.example.datetimepickerdialog;


import java.util.Calendar;


import android.app.Activity;
import android.app.DatePickerDialog;
import android.app.Dialog;
import android.app.TimePickerDialog;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.DatePicker;
import android.widget.EditText;
import android.widget.TimePicker;




public class MainActivity extends Activity {

final int DATE_DIALOG=0; //日期选择对话框的id。
final int TIME_DIALOG=1; //时间选择对话框的id。
Calendar calendar=null; //声明一个日历对象。


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Button btnDate=(Button)findViewById(R.id.btnDate);
        btnDate.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View arg0) {
showDialog(DATE_DIALOG);

}
});
        Button btnTime=(Button)findViewById(R.id.btnTime);
        btnTime.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View arg0) {
showDialog(TIME_DIALOG);

}
});
    }
    protected Dialog onCreateDialog(int id){
    Dialog dialog=null;
    switch (id) {
case DATE_DIALOG:
calendar=Calendar.getInstance(); //获得日期对象。
dialog=new DatePickerDialog(this, new DatePickerDialog.OnDateSetListener() { //创建DatePickerDialog对象。
//创建OnDateSetListener监听器。

@Override
public void onDateSet(DatePicker arg0, int arg1, int arg2, int arg3) {
EditText editText=(EditText)findViewById(R.id.editText);
editText.setText("您选择了:"+arg1+"年"+arg2+"月"+arg3+"日");

}
}, calendar.get(Calendar.YEAR),calendar.get(Calendar.MONTH),calendar.get(Calendar.DAY_OF_MONTH));//传人年,月,天数。

break;
case TIME_DIALOG: //生成时间对话框的代码
calendar=Calendar.getInstance();
dialog=new TimePickerDialog(this, new TimePickerDialog.OnTimeSetListener() { //创建OnTimePickerDialog对象。

@Override
public void onTimeSet(TimePicker arg0, int arg1, int arg2) {
EditText editText=(EditText)findViewById(R.id.editText);
editText.setText("您选择了:"+arg1+"时"+arg2+"分");

}
}, calendar.get(Calendar.HOUR_OF_DAY), calendar.get(Calendar.MINUTE), false); //传人时,分。最后一个参数是是否为24小时?填true or false。


default:
break;
}
    return dialog;
    }


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


    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();
        if (id == R.id.action_settings) {
            return true;
        }
        return super.onOptionsItemSelected(item);
    }
}

这里面的代码较为简单,所以解释也不多,当然图片就不附带了,基本从代码中就可以了解图片的样子了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值