最近因为需求做了一个简单的选择日期的demo,我们可以同android自带的DatePicker控件达到选择日期简单联动的效果,用法挺简单的。
当在dialog在这包下android.app.AlertDialog;
选择这种样式super(context, AlertDialog.THEME_HOLO_DARK)
效果:


THEME_HOLO_DARK.gif

选择这种样式super(context, AlertDialog.THEME_HOLO_LIGHT);
效果:

THEME_HOLO_LIGHT.gif

当在dialog在这包下android.support.v7.app.AlertDialog是这种效果,
super(context, 0) 按钮的位置不一样了。。

android.support.v7.app.AlertDialog;.gif
   /*    * Created by anymo on 2017/4/6.    */public class DialogDatePicker extends AlertDialog implements DialogInterface.OnClickListener, DatePicker.OnDateChangedListener {     private static final String YEAR = "year";     private static final String MONTH = "month";     private static final String DAY = "day";     private OnDateSetListener listener;     private DatePicker picker;     /******     * 日期选择回掉事件    */     public interface OnDateSetListener {    void onDateSet(DatePicker datePicker, int year, int month,                   int day);    }  public DialogDatePicker(Context context, int theme,OnDateSetListener listener, int year, int month,int day) { //        super(context, AlertDialog.THEME_HOLO_DARK); //        super(context, AlertDialog.THEME_HOLO_LIGHT); //        super(context,AlertDialog.THEME_DEVICE_DEFAULT_DARK);         //       super(context,AlertDialog.THEME_DEVICE_DEFAULT_LIGHT);           super(context, AlertDialog.THEME_TRADITIONAL);    this.listener = listener;    Context themeContext = getContext();    setButton(BUTTON_POSITIVE, "ensure", this);    setButton(BUTTON_NEGATIVE, "cancel", this);    setIcon(0);    LayoutInflater inflater =(LayoutInflater)themeContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);    View view = inflater.inflate(R.layout.dialog_datepicker, null);    setView(view);    picker = (DatePicker) view.findViewById(R.id.datepick);    picker.init(year, month, day, this);    }    @Override    public void onClick(DialogInterface dialog, int which) {    if (which == BUTTON_POSITIVE)        tryNotifyDateSet();    }    private void tryNotifyDateSet() {         if (listener != null) {            picker.clearFocus();           //月份要加1            listener.onDateSet(picker, picker.getYear(), picker.getMonth() + 1, picker.getDayOfMonth());         }    }    @Override     public void onDateChanged(DatePicker view, int year, int      monthOfYear, int dayOfMonth) {     if (view.getId() == R.id.datepick)        picker.init(year, monthOfYear, dayOfMonth, this);     } }

android:calendarViewShown="false"这个是为了不显示日历控件

 <?xml version="1.0" encoding="utf-8"?>              

更多相关文章

  1. Android(安卓)获取 AudioRecord 麦克风音量大小并做选择性发送
  2. Android的Activity屏幕切换动画
  3. android中设置Animation 动画效果
  4. android Toast大全
  5. android 局部界面动态切换
  6. 仿微信底部Tab切换,TabHost+Fragment的用法
  7. Android(安卓)Spanned实现TextView富文本效果(1)--文字
  8. Android(安卓)开源框架选择
  9. Android(安卓)Studio 导出APK

随机推荐

  1. 关于xdoc的10篇文章推荐
  2. 关于JTree的文章推荐
  3. 关于SQLite多线程的用法详解
  4. 关于J2ME 3D图形技术的实例详解
  5. c#对xml的CURD操作的代码示例
  6. 详解xml与Java之间的转换
  7. xml在powerbuilder中应用的代码示例
  8. 在asp下通过xml打包网站文件的方法
  9. Android开发中关于2个Xml合并问题的实例
  10. 在xml中写动画的实例详解