android 自定义时间对话框,android自定义日期和时间选择对话框得实现

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;

}

});

}

});

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值