DatePicker

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >
   <DatePicker 
       android:id="@+id/dataPicker"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       
       />
</LinearLayout>

 DatePicker中的点击改变日期事件是用:

datePicker.init(mYear, mMonth, mDay,OnDateChangedListener)

public class DatePickerActivity extends Activity {
   private DatePicker datePicker; 
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);  
        datePicker=(DatePicker)findViewById(R.id.dataPicker);
        final Calendar calendar=Calendar.getInstance();
        int mYear=calendar.get(Calendar.YEAR);
        int mMonth=calendar.get(Calendar.MONTH)+1;
        int mDay=calendar.get(Calendar.DAY_OF_MONTH);
        datePicker.init(mYear, mMonth, mDay,new OnDateChangedListener() {
			
			@Override
			public void onDateChanged(DatePicker view, int year, int monthOfYear,
					int dayOfMonth) {
				Toast.makeText(DatePickerActivity.this, year+"-"+monthOfYear+"-"+dayOfMonth, Toast.LENGTH_LONG).show();
			}
		});
    }
}

DatePickerDialog:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >
        <TextView 
        android:id="@+id/tv1"
        android:layout_width="wrap_content"
		android:layout_height="wrap_content"
		android:layout_gravity="center_horizontal"
		android:textSize="20sp"
		android:text=""
        />
    <Button 
        android:id="@+id/btnPickDate"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:text="修改时间"
        />
</LinearLayout>

 public class DatePickerActivity extends Activity {

   protected static final int DATA_DIALOG_ID = 0;
   private int mYear;
   private int mMonth;
   private int mDay;
   private Button btnPickDate;
   private TextView tv01;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);        
        btnPickDate=(Button)findViewById(R.id.btnPickDate);
        btnPickDate.setOnClickListener(new View.OnClickListener() {			
			@Override
			public void onClick(View v) {
					showDialog(DATA_DIALOG_ID);    
					//activity下的    showDialog方法,点击按钮时会调用onCreateDialog方法
			}
		});
        final Calendar calendar=Calendar.getInstance();
        mYear=calendar.get(Calendar.YEAR);
        mMonth=calendar.get(Calendar.MONTH)+1;
        mDay=calendar.get(Calendar.DAY_OF_MONTH);
    }
	@Override
	protected Dialog onCreateDialog(int id) {
		switch(id){
		  case DATA_DIALOG_ID: //根据用户传递的id来判断
			  return new DatePickerDialog(this, mDateSetListener, mYear, mMonth, mDay);
		}
		return null;
		
	}
	//点击设置
	private DatePickerDialog.OnDateSetListener mDateSetListener=new DatePickerDialog.OnDateSetListener() {
		
		@Override
		public void onDateSet(DatePicker view, int year, int monthOfYear,
				int dayOfMonth) {
			mYear=year;
			mMonth=monthOfYear;
			mDay=dayOfMonth;
			updateDisplay();//显示到textview中
			
		}
	};
    
   private void updateDisplay(){
	   tv01=(TextView)findViewById(R.id.tv1);
	   tv01.setText(new StringBuffer().append("时间: ").append(mYear).append("-").append(mMonth+1).append("-").append(mDay));
   }
}

  

 TimePickerDialog:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >
    <TextView
        android:id="@+id/tv01"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="" />
    <Button
        android:id="@+id/btnTimeDialog"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="设置时间"
         android:layout_gravity="center_horizontal"
         />
</LinearLayout>

 public class TimePickerDialogActivity extends Activity {

  protected static final int TIME_DIALOG_ID = 0;
private Button btnTimeDialog;
  private TextView tv01;
  private int mHour;
  private int mMinnte;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        tv01=(TextView) findViewById(R.id.tv01);
        btnTimeDialog=(Button) findViewById(R.id.btnTimeDialog);
        
        btnTimeDialog.setOnClickListener(new View.OnClickListener() {
			
			@Override
			public void onClick(View v) {
				showDialog(TIME_DIALOG_ID);
			}
		});
        
        final Calendar calendar=Calendar.getInstance();
        mHour=calendar.get(Calendar.HOUR_OF_DAY);
        mMinnte=calendar.get(Calendar.MINUTE);
        updateDisplay();
    }



	@Override
	protected Dialog onCreateDialog(int id) {
		switch(id){
		case TIME_DIALOG_ID:
			return new TimePickerDialog(this,mTimeSetListener,mHour,mMinnte,true);//true表示24小时制
		}
		return null;
	}
	
	private TimePickerDialog.OnTimeSetListener mTimeSetListener=new TimePickerDialog.OnTimeSetListener() {
		
		@Override
		public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
			mHour=hourOfDay;
			mMinnte=minute;
			updateDisplay();
		}
	};
    private void updateDisplay(){
    	tv01.setText(new StringBuffer().append("时间: ").append(pad(mHour)).append(":").append(pad(mMinnte)));
    }
    private static String pad(int c){
    	if(c>=10){
    		return String.valueOf(c);
    	}
    	else{
    		return "0"+String.valueOf(c);
    	}
    }
}

  

猜你喜欢

转载自284772894.iteye.com/blog/1732201