开发者社区> 问答> 正文

从助手类调用DatePicker到android活动

我在我的一项活动中使用DatePickerDialog且其工作正常,但现在我必须在许多活动中实现它,因此我考虑将其放在帮助器类中,并将该功能扩展为所有活动,作为良好的代码实践。不能正确使用它。我在stackoverflow上看到了另一个链接,但是在那儿它们从一个类扩展到另一个类而不是活动。我想要的是我有一个辅助类,在该类中我多次使用了Iam在我的应用程序中,然后根据需要将它们扩展到任何活动。因此,我想将此datepicker函数放入HelperClass中,然后在app中的任何位置获取此函数。

这是我的datePicker函数,目前在活动中Iam使用它,并且工作正常

public void datePicker(int day,int month,int year) {
                if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.N) {
                    final Calendar myCalendar = Calendar.getInstance();
                    year = myCalendar.get(Calendar.YEAR);
                    month = myCalendar.get(Calendar.MONTH);
                    day = myCalendar.get(Calendar.DAY_OF_MONTH);
                }
                picker = new DatePickerDialog(RequestTraining.this, new DatePickerDialog.OnDateSetListener() {
                    @Override
                    public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {


                    }
                }, year, month, day);
                picker.getDatePicker().setMinDate(System.currentTimeMillis() - 1000);
                picker.show();
            }

这是我做的界面

public interface DatePickerListener {

    public void onDate(DatePicker view, int year, int monthOfYear, int dayOfMonth);

}

展开
收起
垚tutu 2019-11-29 22:59:25 851 0
1 条回答
写回答
取消 提交回答
  • #include

    我认为,最好的方法就是这样

    class Utils {
        public void datePicker(Context mContext, EditText et) {
            if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.N) {
                final Calendar myCalendar = Calendar.getInstance();
                year = myCalendar.get(Calendar.YEAR);
                month = myCalendar.get(Calendar.MONTH);
                day = myCalendar.get(Calendar.DAY_OF_MONTH);
            }
            picker = new DatePickerDialog(mContext, new DatePickerDialog.OnDateSetListener() {
                @Override
                public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
                    et.setText(dayOfMonth + "/" + (monthOfYear + 1) + "/" + year);
                }
            }, year, month, day);
        picker.getDatePicker().setMinDate(System.currentTimeMillis() - 1000);
        picker.show();
       }
    }
    
    

    现在只需从任何类调用此方法

    Utils.datePicker(this, editText);
    
    2019-11-29 22:59:48
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
58同城Android客户端Walle框架演进与实践之路 立即下载
Android组件化实现 立即下载
蚂蚁聚宝Android秒级编译——Freeline 立即下载