DatePicker 和 TimePicker 时两个比较易用的控件,从FrameLayout派生而来,DatePicker 工用户选择日期,TimerPicker
供用户选择日期。
程序需要获取用户选择的日期,和时间,可通过DatePicker添加OnDateChangeListener进行监听,为TimePicker添加OnTimerChangedListener监听
xml:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="选择购买本书的时间" />
<!-- 定义一个DatePicker组件 -->
<DatePicker
android:id="@+id/datepicker"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"/>
<TimePicker
android:id = "@+id/timepicker"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"/>
<EditText
android:id = "@+id/show"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:editable = "false"
android:cursorVisible="false"/>
</LinearLayout>
java
package com.example.choosedate;
import java.util.Calendar;
import android.os.Bundle;
import android.provider.CallLog.Calls;
import android.app.Activity;
import android.graphics.Canvas;
import android.view.Menu;
import android.widget.DatePicker;
import android.widget.DatePicker.OnDateChangedListener;
import android.widget.EditText;
import android.widget.TimePicker;
import android.widget.TimePicker.OnTimeChangedListener;
public class MainActivity extends Activity {
private int year;
private int month;
private int day;
private int hour;
private int minute;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
DatePicker datepicker = (DatePicker)findViewById(R.id.datepicker);
TimePicker timepicker = (TimePicker)findViewById(R.id.timepicker);
Calendar c = Calendar.getInstance();
year = c.get(Calendar.YEAR);
month = c.get(Calendar.MONTH);
day = c.get(Calendar.DAY_OF_MONTH);
hour = c.get(Calendar.HOUR);
minute = c.get(Calendar.MINUTE);
datepicker.init(year,month,day,new OnDateChangedListener() {
@Override
public void onDateChanged(DatePicker arg0, int arg1, int arg2, int arg3) {
// TODO Auto-generated method stub
MainActivity.this.year = arg1;
MainActivity.this.month = arg2;
MainActivity.this.day = arg3;
showData(year,month,day,hour,minute);
}
});
timepicker.setOnTimeChangedListener(new OnTimeChangedListener() {
@Override
public void onTimeChanged(TimePicker arg0, int arg1, int arg2) {
// TODO Auto-generated method stub
MainActivity.this.hour = arg1;
MainActivity.this.minute = arg2;
showData(year,month,day,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;
}
private void showData(int year,int month,int day,int hour,int minute)
{
EditText show = (EditText)findViewById(R.id.show);
show.setText("你购买的日期为:"+ year+"年" + month +"月"+ day + "日" + hour+"时"+minute +"分");
}
}