在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);
}
}
这里面的代码较为简单,所以解释也不多,当然图片就不附带了,基本从代码中就可以了解图片的样子了。