时间设置对话框 DatePickerDialog的使用

来源:互联网 发布:微信公众号开发框架php 编辑:程序博客网 时间:2024/05/29 19:04
时间设置对话框DatePickerDialog的使用
一、可以同过重载DatePickerDialog的setTitle来设置个性的标题
比如:    
@Override    
    public void setTitle(CharSequence title) {
        // TODO Auto-generated method stub
        java.text.DateFormat dataFormat = (DateFormat
                .getDateFormat(getContext()));
        mCalendar = Calendar.getInstance();
       //可得到“12/31/1969(Wed)”形式的日期格式
        String strTitle=dataFormat.format(mCalendar.getTime())
        + DateFormat.format(" (E)", mCalendar.getTime()).toString();
        super.setTitle(dataFormat.format(strTitle);
    }

二、通过onDateChanged回调函数监听时间的改变
当时间改变时(编辑) 以下函数回被调用
 public void onDateChanged(DatePicker view, int year, int month, int day) {
        Log.i("hubin","onDateChanged");
    }
三、通过updateDate()设置年月日
public    void    updateDate      (int year, int monthOfYear, int dayOfMonth)设置DatePickerDialog的年,月,日
四、通过onDateChangedListener来监听时间设置对话框的确定按钮被按下
onDateChangedListener的onDateSet是用于都在时间设置对话框的确定按钮被按下的监听

import java.util.Calendar;
import java.util.Date;
import java.util.Locale;

import android.app.Activity;
import android.app.DatePickerDialog;
import android.app.DatePickerDialog.OnDateSetListener;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.DatePicker;
import android.widget.TextView;

public class TestClock extends Activity implements OnDateSetListener, OnClickListener {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button btn = (Button)findViewById(R.id.date);
btn.setOnClickListener(this);
}


public void onClick(View v) {//普通按钮事件
Calendar d = Calendar.getInstance(Locale.CHINA);
//创建一个日历引用d,通过静态方法getInstance() 从指定时区 Locale.CHINA 获得一个日期实例
Date myDate=new Date();
//创建一个Date实例
d.setTime(myDate);
//设置日历的时间,把一个新建Date实例myDate传入
int year=d.get(Calendar.YEAR);
int month=d.get(Calendar.MONTH);
int day=d.get(Calendar.DAY_OF_MONTH);
//获得日历中的 year month day
DatePickerDialog dlg=new DatePickerDialog(this,this,year,month,day);
//新建一个DatePickerDialog 构造方法中         
//     (设备上下文,OnDateSetListener时间设置监听器,默认年,默认月,默认日)
dlg.show();
//让DatePickerDialog显示出来
}


public void onDateSet(DatePicker view, int year, int monthOfYear,int dayOfMonth){
//DatePickerDialog 中按钮Set按下时自动调用
TextView txt = (TextView) findViewById(R.id.text);
//通过id获得TextView对象
txt.setText(Integer.toString(year) + "-" +
Integer.toString(monthOfYear) + "-" +
Integer.toString(dayOfMonth));
//设置text
}
}


main.xml

<?xml version="1.0" encoding="utf-8"?>
<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="@string/hello"
android:id="@+id/text"
/>

<Button 
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/date"
android:text="設置時間"
>
</Button>
</LinearLayout>  
0 0