【问题标题】:What should I use on my Android application to view a calendar?我应该在我的 Android 应用程序上使用什么来查看日历?
【发布时间】:2016-09-20 07:12:04
【问题描述】:

我创建了一个 Android 应用程序,我想在应用程序上显示日历,以便用户可以选择某个日期。我尝试使用 CalendarView 完成它,但最终一无所获。在 calendarView 中,setMinDate 将默认日历视图设置为 2100,我猜 2038 之后的日期也存在一些问题。

我需要做什么才能在我的 android 应用程序上查看禁用了过去几天的日历。(但不是使用 calendarview,受够了并尝试了上面的所有内容!)

【问题讨论】:

  • 您希望用户一次选择多个日期吗?
  • 感谢您的回复。不,这不是我的要求。我的要求是用户需要输入过去几天之外的日期。
  • 你在对话框中尝试过 datepicker
  • 不,我没有。我刚刚使用了 CalendarView。
  • 我使用 CalendarView 卡住了,现在我在这里寻找其他方式!

标签: android android-studio datepicker simpledateformat


【解决方案1】:
     @SuppressLint({"NewApi"})
        public void showDatePicker() {
           DatePickerDialog datePickerDialog=new DatePickerDialog(this,new DatePickerDialog.OnDateSetListener() {
               @Override
               public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
    //               Log.e("cal", "year= "+ year + " month= "+ dayOfMonth+ " day= "+ dayOfMonth);
                   String monthh = (1 + monthOfYear) + "";
                   if (monthh.length() != 2) {
                       monthh = "0" + monthh;
                   }
                   String dayy = (dayOfMonth) + "";
                   if (dayy.length() != 2) {
                       dayy = "0" + dayy;
                   }

                   String str = year
                           + "-" + monthh
                           + "-" + dayy;                  
    //                Log.e("Date dialog", str);
                   selected_date=str;   

               }
           },
 Calendar.getInstance().get(Calendar.YEAR),       Calendar.getInstance().get(Calendar.MONTH), Calendar.getInstance().get(Calendar.DAY_OF_MONTH));
          //  datePickerDialog.setTitle("Select Date");
            datePickerDialog.getDatePicker().setMinDate();// here you can set your min date below which the user cannot select any date.
            datePickerDialog.getDatePicker().setMaxDate(new Date().getTime());
            datePickerDialog.show();

        }

如果它解决了您的问题,请告诉我,否则我们将采用其他方法。

【讨论】:

  • 当然我会试试看,如果解决了就会回复你!
  • 它工作正常!但是,如果我不想要一个对话框并且我需要一个 UI 元素,比如日历视图,该怎么办。对不起,如果我不合逻辑,因为我是 Android 编程的新手。
  • 您可以尝试使用 xml 中的 datepicked
  • 好的,谢谢。我马上解决!明白了背后的逻辑。再次感谢。
【解决方案2】:

嘿,检查一下这段代码。

 long date = selected.getTimeInMillis();
 long date1 = System.currentTimeMillis() - 24 * 60 * 60 * 1000;

 if (date1 < date) 
 {
   closePopup();
 } 
 else
   Toast.makeText(mContext, "Past date reminder can not be set", Toast.LENGTH_SHORT).show();

乐于助人。

【讨论】:

  • 感谢朋友的回复!选定日历 = Calendar.getInstance(); //selected 有当前日期吗?
  • @AvinashJaiswal 是的..我在我的项目中做过这个。如果你觉得有用,你可以投票给它。
  • 谢谢伙计!我会结合你的逻辑和日期选择器来解决它。再次感谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-01-08
  • 2019-10-10
  • 1970-01-01
  • 1970-01-01
  • 2021-07-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多