android 开发:我想实现一个EditText点击后出现一个日历然后返回值到EditText显示?
给一个代码示例谢谢,急用
Calendar calendar = Calendar.getInstance();
final SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
new DatePickerDialog(this, DatePickerDialog.THEME_HOLO_LIGHT, new DatePickerDialog.OnDateSetListener() {
@SuppressLint("DefaultLocale")
@Override
public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
String tm = String.format("%02d", (monthOfYear + 1));
String td = String.format("%02d", dayOfMonth);
String date = (year + "-" + tm + "-" + td);
etStart.setText(date);
}
}, calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH), calendar.get(Calendar.DAY_OF_MONTH));
用popwindow, view 自己布局【用一个DatePicker或自定义即可】
给Editext设置监听,判断是否获取焦点,获取焦点的时候弹出日历控件
StringBuilder str = new StringBuilder("");//这个设置成员变量
prviate Edittext queryDateTo;
初始化控件 findbyid.....之类的。
我的这种方法就是点击EditText弹出时间选择框 包括年月日时分秒,你可以自己删改。
然后选择时间,显示在编辑框上,第二次显示的时候会清除之前显示的时间。
我也是菜鸟,所以代码比较啰嗦,但是我平常就是这样实现这个功能的.
//设置结束时间
queryDateTo.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View source) {
Calendar c = Calendar.getInstance();
// 直接创建一个DatePickerDialog对话框实例,并将它显示出来
Dialog dateDialog = new DatePickerDialog(ReportSearch.this,
// 绑定监听器
new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker dp, int year,
int month, int dayOfMonth) {
sts.append(year + "-" + (month + 1) + "-"
+ dayOfMonth + " ");
Calendar time = Calendar.getInstance();
Dialog timeDialog = new TimePickerDialog(
ReportSearch.this,
// 绑定监听器
new TimePickerDialog.OnTimeSetListener() {
@Override
public void onTimeSet(
TimePicker tp,
int hourOfDay, int minute) {
sts.append(hourOfDay + ":"
+ minute);
queryDateTo.setText(sts);
sts.replace(0, sts.length(), "");
}
}
// 设置初始时间
, time.get(Calendar.HOUR_OF_DAY), time
.get(Calendar.MINUTE)
// true表示采用24小时制
, true);
timeDialog.setTitle("请选择日期");
timeDialog.show();
}
}
// 设置初始日期
, c.get(Calendar.YEAR), c.get(Calendar.MONTH), c
.get(Calendar.DAY_OF_MONTH));
dateDialog.setTitle("请选择日期");
dateDialog.show();
}
});

https://img-ask.csdn.net/upload/201702/07/1486436170_718.gif
你打开这个GIF图片。。。我上面的回答中贴了。。可是GIF图片不显示。。你自己复制到浏览器打开了,那是我的效果图