【问题标题】:set Date Picker Default Value to current day将日期选择器默认值设置为当天
【发布时间】:2017-08-06 03:25:11
【问题描述】:

我构建了一个日期选择器,它可以让用户选择日期并以这样的形式返回它(“dd-MM-yyy”);。但是,日期选择器从 1990 年开始,我正在尝试将默认开始日期更改为当前日期。

private void SetDatePicker() {
DatePickerDialog.OnDateSetListener listner = new DatePickerDialog.OnDateSetListener() {

    @Override
    public void onDateSet(DatePicker view, int year, int month, int dayOfMonth) {
         currentDate = new SimpleDateFormat("dd/MM/yyyy");
         currentday = new SimpleDateFormat("dd");
         currentMonth = new SimpleDateFormat("mm");
         currentYear = new SimpleDateFormat("yy");

        todayDate = new Date();
        String thisDate = currentDate.format(todayDate);
        Log.w ("Date", thisDate);
        DateStore.set (Calendar.DAY_OF_MONTH, Integer.parseInt (currentday.format(todayDate)));
        DateStore.set (Calendar.MONTH, Integer.parseInt (currentMonth.format(todayDate)));
        DateStore.set (Calendar.YEAR, Integer.parseInt (currentYear.format(todayDate)));


        DayofMonth =  DateStore.get (Calendar.DAY_OF_MONTH);
        MonthOfMonth = DateStore.get (Calendar.MONTH) + 1;
        mYear = DateStore.get (Calendar.YEAR);

        String DateString = String.valueOf (dayOfMonth) + "-" + String.valueOf (MonthOfMonth)  + "-" + String.valueOf (year);
        Log.w ("Date Test" , DateString);
    }
};
    DatePickerDialog DatePickerDioalg = new DatePickerDialog (getActivity() ,0,listner ,Integer.parseInt (currentday.format(todayDate)),
            Integer.parseInt (currentMonth.format(todayDate)),Integer.parseInt (currentYear.format(todayDate)));
DatePickerDioalg.show();
}

这是 XML

                    <EditText
                    android:id="@+id/edittext_date"
                    android:onclick="pickdate"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_gravity="center"
                    android:layout_weight="1.8"
                    android:background="#FFFF"
                    android:gravity="center"
                    android:hint="10-09-2017"
                    android:textSize="16sp"/>

【问题讨论】:

    标签: android datepicker


    【解决方案1】:

    日期选择器

    试试这个方法
    public void pickdate(View button) {
        // Get Current Date
        final Calendar c = Calendar.getInstance();
        mYear = c.get(Calendar.YEAR);
        mMonth = c.get(Calendar.MONTH);
        mDay = c.get(Calendar.DAY_OF_MONTH);
    
    
        DatePickerDialog datePickerDialog = new DatePickerDialog(this,
                new DatePickerDialog.OnDateSetListener() {
    
                    @Override
                    public void onDateSet(DatePicker view, int year,
                                          int monthOfYear, int dayOfMonth) {
    
                        edittext_date.setText(dayOfMonth + "-" + (monthOfYear + 1) + "-" + year);
    
                    }
                }, mYear, mMonth, mDay);
        datePickerDialog.show();
    }
    

    这是 时间选择器

    public void picktime(View button) {
        final Calendar c = Calendar.getInstance();
        mHour = c.get(Calendar.HOUR_OF_DAY);
        mMinute = c.get(Calendar.MINUTE);
    
        // Launch Time Picker Dialog
        TimePickerDialog timePickerDialog = new TimePickerDialog(this,
                new TimePickerDialog.OnTimeSetListener() {
    
                    @Override
                    public void onTimeSet(TimePicker view, int hourOfDay,
                                          int minute) {
    
                        edittext_time.setText(hourOfDay + ":" + minute);
                    }
                }, mHour, mMinute, false);
        timePickerDialog.show();
    }
    

    【讨论】:

    • 我试过 Omar 你能告诉我如何实现它,确切地替换什么。什么是edittext_date
    • 我添加了 xml,最初它是一个按钮,但 setText 无法使用它。这个方法对片段有效吗
    • 是的,它适用于片段,只需为片段添加 'getcontext()' 而不是 'this',这里 """"TimePickerDialog timePickerDialog = new TimePickerDialog(getcontext(), new TimePickerDialog.OnTimeSetListener( ) """"
    • 好的,我让它们显示没有错误,但是,我很抱歉最后一件事 onClick 方法我不熟悉它通常我通过 id 绑定它们。这个给我找不到方法pickdate(View)
    • 在这种情况下,只需在 'pickdate' 中添加代码并粘贴到 btn.setOnClicklistener() 中,
    【解决方案2】:

    你应该试试这个来获取当前日期:

    DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd");
                        String todate= dateFormat.format(currentdate());
    
    String  finalto = todate.toString(); //here you get current date
    
    private Date currentdate() {
        final Calendar cal = Calendar.getInstance();
        cal.add(Calendar.DATE, 0);
        return cal.getTime();
    }
    

    【讨论】:

    • 应用程序崩溃不起作用,什么是 currentdate() 它不起作用
    • @Adnanhaider 获取当前日期,您可以使用来自 Java8.Ex 的新 DateTime API:LocalDateTime.now();
    猜你喜欢
    • 2019-05-26
    • 1970-01-01
    • 2011-04-09
    • 2012-11-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-05
    • 1970-01-01
    相关资源
    最近更新 更多