java - 如何修复第一次点击 'set' 为空,第二次点击仅获取日期

标签 java android validation date

系统运行良好。但是每当调用该函数并弹出对话框时,无论我是否不是第一次选择日期,日期都是空的。我再次设置后它才获取日期。

这是错误“E/ViewRootImpl: sendUserActionEvent() mView == null”

else if(v==editTextDate){

    Calendar cal = Calendar.getInstance();
    int year = cal.get(Calendar.YEAR);
    int month = cal.get(Calendar.MONTH);
    int day = cal.get(Calendar.DAY_OF_MONTH);
    day = day + 1;
    DatePickerDialog dialog = new DatePickerDialog(MakeResv.this, android.R.style.Theme_Holo_Light_Dialog_MinWidth, mDateSetListener, year, month, day);
    dialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
    dialog.show();

    mDateSetListener = new DatePickerDialog.OnDateSetListener(){
        //GET CURRENT DATE
        String currentdate = new SimpleDateFormat("dd/MM/yyyy", Locale.getDefault()).format(new Date());
        //SPLIT
        String[] items1 = currentdate.split("/");
        String dateOnly=items1[0];
        String monthOnly=items1[1];
        String yearOnly=items1[2];
        //convert splited string to integer
        int dateOnlyInt = Integer.parseInt(dateOnly);
        int monthOnlyInt = Integer.parseInt(monthOnly);
        int yearOnlyInt = Integer.parseInt(yearOnly);

        @Override
        public void onDateSet(DatePicker datePicker, int year, int month, int dayOfMonth) {
            month = month +1;
            Log.d("myTag", "888 "+dayOfMonth + "/" + month + "/" + year );
            String date = dayOfMonth + "/" + month + "/" + year;
            //editTextDate.setText(date);


            if (year<yearOnlyInt||month<monthOnlyInt||dayOfMonth<=dateOnlyInt){
                //editTextDate.setError("Invalid year");

                Toast.makeText(MakeResv.this,"Invalid date",Toast.LENGTH_SHORT).show();
                editTextDate.getText().clear();
                editTextDate.setHint("Choose a date");
                return;
            }else{
                editTextDate.setText(date);
            }
        }

    };


}

我希望在“设置”后第一次获得日期值。

最佳答案

您正在使用 EditText,这会导致问题。

使用 TextView 代替 EditText。

关于java - 如何修复第一次点击 'set' 为空,第二次点击仅获取日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56127313/

相关文章:

jquery - 如何使用 jquery 验证输入数组中的至少一个输入

zend-form - 将 inputFilter 附加到动态创建的字段元素

Java:检查非堆内存使用情况

java - DefaultTableModel 的替代方案

java - 一个简单的 Applet 的 Java 控制台中的这种错误

Android:无法将发布版本安装到模拟器上;获取失败 [INSTALL_PARSE_FAILED_UNEXPECTED_EXCEPTION]

c - 验证 scanf 条目

java - 创建动态按钮数组

java - 如何将字符串添加到messageFormat中

android - 单击 Android 中的 EditText 上下移动 View