1,先写布局文件,把时间选择器和日期选择器都放到一起去
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/write"
android:orientation="vertical" >
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:orientation="vertical" >
android:id="@+id/time_data"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="15dp" />
android:id="@+id/time_time"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="15dp" />
2,写一个自定义控件实体类
/**
* @author 作者 dpc
* @date 创建时间:2015年12月26日 下11:41:50
* @parameter
* @since
* @return
*/
public class ShowTime {
String data,time = "" ;
public ShowTime(Context c,final ShowTimeIn s){
View view = LayoutInflater.from(c).inflate(R.layout.timescheh, null);
final DatePicker da = (DatePicker) view.findViewById(R.id.time_data);
Calendar calendar=Calendar.getInstance();
int year=calendar.get(Calendar.YEAR);
int monthOfYear=calendar.get(Calendar.MONTH);
int dayOfMonth=calendar.get(Calendar.DAY_OF_MONTH);
data = new SimpleDateFormat("yyyy-MM-dd").format(new Date());
da.init(year, monthOfYear, dayOfMonth, new OnDateChangedListener(){
public void onDateChanged(DatePicker view, int year,
int monthOfYear, int dayOfMonth) {
//dateEt.setText("您选择的日期是:"+year+"年"+(monthOfYear+1)+"月"+dayOfMonth+"日。");
data = "" ;
data += year ;
data += "-" ;
if ((monthOfYear+1)
data += "0" ;
data += (monthOfYear+1) ;
}else {
data += (monthOfYear+1) ;
}
data += "-" ;
if (dayOfMonth
data += "0" ;
data += dayOfMonth ;
}else {
data += dayOfMonth ;
}
}
});
final TimePicker ti = (TimePicker) view.findViewById(R.id.time_time);
int hour = calendar.get(Calendar.HOUR_OF_DAY);
int m = calendar.get(Calendar.MINUTE);
final int ss = calendar.get(Calendar.SECOND);
ti.setCurrentHour(hour);
//ti.setIs24HourView(true);
if (hour
time += "0" ;
time += hour ;
}else {
time += hour ;
}
time += ":" ;
if (m
time += "0" ;
time += m ;
}else {
time += m ;
}
time += ":" ;
if (ss
time += "0" ;
time += ss ;
}else {
time += ss ;
}
ti.setOnTimeChangedListener(new OnTimeChangedListener() {
public void onTimeChanged(TimePicker view, int hourOfDay, int minute) {
// TODO Auto-generated method stub
time = "" ;
if (hourOfDay
time += "0" ;
time += hourOfDay ;
}else {
time += hourOfDay ;
}
time += ":" ;
if (minute
time += "0" ;
time += minute ;
}else {
time += minute ;
}
time += ":" ;
if (ss
time += "0" ;
time += ss ;
}else {
time += ss ;
}
}
});
Dialog dialog = new AlertDialog.Builder(c)
//.setIcon(android.R.drawable.ic_menu_week)
//注入自己的布局文件
.setView(view)
.setPositiveButton("确定", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
s.GetData(data, time);
dialog.dismiss();
}
})
.setNegativeButton("取消", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
dialog.dismiss();
}
})
.create();
dialog.show();
}
// 这里写了一个回调函数的接口
public interface ShowTimeIn {
void GetData(String data ,String time);
}
}
3,此控件的用法获取选择的时间和日期。
// 设置时间日期
jckssj.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
new ShowTime(
mainactivity.this,
new com.gaosheng.spyx.Fpmsmsmobile.one.ShowTime.ShowTimeIn() {
@Override
public void GetData(String data, String time) {
// TODO Auto-generated method stub
jckssj.setText(data + " " + time);
sjStr = data + " " + time;
}
});
}
});