Java Don';我不明白如何纠正日期选择器代码中的错误

Java Don';我不明白如何纠正日期选择器代码中的错误,java,android,Java,Android,我不明白我在哪里犯了错误。我想确定是周末还是工作日。如果是周末,那么应该在祝酒词中提示是周日或周六周末。我不知道我应该用什么来代替???做记号如果是周末,它还应该显示当前日期。请,任何人都可以帮我。多谢各位 View.OnClickListener//, // TimePickerDialog.OnTimeSetListener // TimePickerDialog.OnTimeSetListener { //Declaration for cla

我不明白我在哪里犯了错误。我想确定是周末还是工作日。如果是周末,那么应该在祝酒词中提示是周日或周六周末。我不知道我应该用什么来代替???做记号如果是周末,它还应该显示当前日期。请,任何人都可以帮我。多谢各位

     View.OnClickListener//,
//       TimePickerDialog.OnTimeSetListener


      // TimePickerDialog.OnTimeSetListener
{
    //Declaration for class
    ButtonViews views;
    dpListener dpListenerView;
    // Declartion for member vairables
    int day, month, x_year;
    int hour;
    int minute;
    Calendar calendar;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        views = new ButtonViews();
        dpListenerView = new dpListener();

        //ButtonListener
        views.button_date.setOnClickListener(this);
        views.button_time.setOnClickListener(this);
        //

       // pick up the default date using Calender class
         calendar =  GregorianCalendar.getInstance(TimeZone.getTimeZone("GMT"), Locale.getDefault());

/*
        day = calendar.get(Calendar.DAY_OF_MONTH);
        month = calendar.get(Calendar.MONTH);
        x_year = calendar.get(Calendar.YEAR);
*/
        curr_date();

        hour = calendar.get(Calendar.HOUR_OF_DAY);
        minute = calendar.get(Calendar.MINUTE);

        setupDate(day, month, x_year);
        setupTime(hour, minute);
   }

    public void curr_date(){
        day = calendar.get(Calendar.DAY_OF_MONTH);
        month = calendar.get(Calendar.MONTH);
        x_year = calendar.get(Calendar.YEAR);
    }

    @Override
    public void onClick(View v) {
        switch (v.getId()) {
            case R.id.button_date:
                showDatePickerDialog();
                break;
            case R.id.button_time:

                break;
        }
    }


    private void setupTime(int hours, int minutes) {
        views.button_time.setText(hours + ":" + minutes);
    }

    private void setupDate(int day, int month, int year) {

        String strMonth = ((month + 1) <= 9) ? ("0" + (month + 1)) : String.valueOf(month + 1);
                  views.button_date.setText(String.valueOf(day) + "/" + strMonth + "/" + String.valueOf(year));
    }
    private void showDatePickerDialog() {
        DatePickerDialog datepickerdialog = new DatePickerDialog
                (
                        this,
                         dpListenerView,
                       /* new DatePickerDialog.OnDateSetListener() {
                            @Override
                            public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
                            } },*/
                        //this,

                        x_year,
                        month,
                        day
                );

           datepickerdialog.show();
    }


  class ButtonViews {
        Button button_time;
        Button button_date;

        public ButtonViews() {
            button_date = (Button) findViewById(R.id.button_date);
            button_time = (Button) findViewById(R.id.button_time);
        }
    }

  class dpListener implements OnDateSetListener {
      @Override
      public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {


          Calendar c = Calendar.getInstance();
         // c.setTime();
          int dayOfWeek = c.get(Calendar.DAY_OF_WEEK);

         if(dayOfWeek == 7 || dayOfWeek == 1) {
              // as your requirement: you should display mesage they can not select the weekend" here
              // then you set the value in datepickerdialog by current date
              Toast.makeText(DateTimePickerActivity.this
                      , "You have selected weekend"
                      , Toast.LENGTH_SHORT).show();
          }


      }


   }
}
View.OnClickListener//,
//TimePickerDialog.OnTimeSetListener
//TimePickerDialog.OnTimeSetListener
{
//课堂声明
按钮视图视图;
dplistenrview;
//会员虚报的申报
整数天,月,x_年;
整小时;
整数分钟;
日历;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
视图=新按钮视图();
dplistenrview=新的dpListener();
//按钮列表器
views.button\u date.setOnClickListener(此);
views.button\u time.setOnClickListener(这个);
//
//使用日历类选择默认日期
calendar=GregorianCalendar.getInstance(TimeZone.getTimeZone(“GMT”),Locale.getDefault();
/*
day=calendar.get(calendar.day/u月);
month=calendar.get(calendar.month);
x_year=calendar.get(calendar.year);
*/
当前日期();
hour=calendar.get(calendar.hour/OF\u DAY);
分钟=calendar.get(calendar.minute);
设置日期(日、月、x年);
设置时间(小时、分钟);
}
公共无效当前日期(){
day=calendar.get(calendar.day/u月);
month=calendar.get(calendar.month);
x_year=calendar.get(calendar.year);
}
@凌驾
公共void onClick(视图v){
开关(v.getId()){
案例R.id.按钮\日期:
showDatePickerDialog();
打破
案例R.id.按钮\时间:
打破
}
}
专用无效设置时间(整数小时,整数分钟){
views.button_time.setText(小时+“:”+分钟);
}
私有无效设置日期(整数天、整数月、整数年){

String strMonth=((month+1)一旦你得到了日期,你就可以这样做,得到日期,继续你的逻辑

    Calendar c = Calendar.getInstance();
    c.setTime(yourDate);
    int dayOfWeek = c.get(Calendar.DAY_OF_WEEK);

我认为您的变量dayOfWeek与参数dayOfMonth是同一个变量

上述代码必须有效

public DatePickerDialog.OnDateSetListener pickerListener = new DatePickerDialog.OnDateSetListener() {

    @Override
    public void onDateSet(DatePicker view, int selectedYear,
                          int selectedMonth, int selectedDay) {
        if (selectedDay == 1 || selectedDay == 7) {
            Toast.makeText(DateTimePickerActivity.this
                  , "You have selected weekend"
                  , Toast.LENGTH_SHORT).show();
            view.updateDate(selectedYear,selectedMonth,selectedDay);
        }
    }
};

你从哪里得到的星期日你提到我你的日期。请你解释一下我应该写什么来代替它你从用户那里得到的输入或你当前的日期和时间。不要放弃投票并接受回答我正在编辑我的原始代码。请你检查一下,看看我应该编码什么。谢谢你的回答可能是你的问题lem是事件的类型,请检查onDateChangedListener,如下所示: