Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/383.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 单击时未打开“日期选择器”对话框_Java_Android - Fatal编程技术网

Java 单击时未打开“日期选择器”对话框

Java 单击时未打开“日期选择器”对话框,java,android,Java,Android,当我运行并单击该按钮时,它不会打开datapicker对话框。我无法找出什么是错误的。请,任何人都可以检查并指导我程序中的错误代码在哪里 { //Declaration for class ButtonViews views; dpListener dpListenerView; // Declartion for member vairables int day, month, x_year; i

当我运行并单击该按钮时,它不会打开datapicker对话框。我无法找出什么是错误的。请,任何人都可以检查并指导我程序中的错误代码在哪里

   {
      //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);
            Log.i("DAY in Num....."," "+ month);

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

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

        @Override
        public void onClick(View v) {
            switch (v.getId()) {
                case R.id.button_date:
                    showDatePickerDialog();
                    break;
                case R.id.button_time:
                      showTimePickerDialog();
                    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
                    );


        }


     /*   private OnDateSetListener dpListener = new OnDateSetListener() {
                @Override
                public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
                   *//* day = dayOfMonth;
                    month = monthOfYear;
                    x_year = year;*//*
                    setupDate(dayOfMonth,monthOfYear,year);
                }

            };*/


        public void showTimePickerDialog() {

          TimePickerDialog   timePickerDialog = new TimePickerDialog(
                    DateTimePickerActivity.this,
                    this,
                    hour,
                    minute,
                    true
             );
            calendar.set(Calendar.HOUR, hour);
            calendar.set(Calendar.MINUTE, minute);

            timePickerDialog.show();
        }

    //    @Override
    //    public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
    //        setupDate(dayOfMonth,monthOfYear,year);
    //    }

        @Override
        public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
            setupTime(hourOfDay, minute);
        }


       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) {
                   /* day = dayOfMonth;
                    month = monthOfYear;
                    x_year = year;*/

                setupDate(dayOfMonth,monthOfYear,year);
            }

        }
    }
{
//课堂声明
按钮视图视图;
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);
Log.i(“以数字表示的天…”,“+月”);
hour=calendar.get(calendar.hour/OF\u DAY);
分钟=calendar.get(calendar.minute);
设置日期(日、月、x年);
设置时间(小时、分钟);
}
@凌驾
公共void onClick(视图v){
开关(v.getId()){
案例R.id.按钮\日期:
showDatePickerDialog();
打破
案例R.id.按钮\时间:
showTimePickerDialog();
打破
}
}
专用无效设置时间(整数小时,整数分钟){
views.button_time.setText(小时+“:”+分钟);
}
私有无效设置日期(整数天、整数月、整数年){
字符串strMonth=((月+1)
并从int为已识别的对话框定义此方法

@Override
protected Dialog onCreateDialog(int id) {
    // TODO Auto-generated method stub
    if (id == 999) {
        return new DatePickerDialog(this, myDateListener, yr, month, day);
    } else if (id == 99) {
        return new TimePickerDialog(this, myTimeListener, h, m, true);
    }
    return null;
}
还有听众

// For Date Picker
private DatePickerDialog.OnDateSetListener myDateListener = new OnDateSetListener() {

    @Override
    public void onDateSet(DatePicker view, int year, int monthOfYear,
            int dayOfMonth) {
        // TODO Auto-generated method stub
        day = dayOfMonth;
        month = monthOfYear + 1;
        yr = year;
        Toast.makeText(
                MainActivity.this,
                new StringBuilder().append(day).append("-").append(month)
                        .append("-").append(yr), Toast.LENGTH_LONG).show();
    }
};
// For TimePicker
private TimePickerDialog.OnTimeSetListener myTimeListener = new OnTimeSetListener() {

    @Override
    public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
        // TODO Auto-generated method stub
        h = hourOfDay;
        m = minute;
        Toast.makeText(MainActivity.this,
        new StringBuilder().append(h).append(":").append(m),
        Toast.LENGTH_LONG).show();
    }
};
并从int为已识别的对话框定义此方法

@Override
protected Dialog onCreateDialog(int id) {
    // TODO Auto-generated method stub
    if (id == 999) {
        return new DatePickerDialog(this, myDateListener, yr, month, day);
    } else if (id == 99) {
        return new TimePickerDialog(this, myTimeListener, h, m, true);
    }
    return null;
}
还有听众

// For Date Picker
private DatePickerDialog.OnDateSetListener myDateListener = new OnDateSetListener() {

    @Override
    public void onDateSet(DatePicker view, int year, int monthOfYear,
            int dayOfMonth) {
        // TODO Auto-generated method stub
        day = dayOfMonth;
        month = monthOfYear + 1;
        yr = year;
        Toast.makeText(
                MainActivity.this,
                new StringBuilder().append(day).append("-").append(month)
                        .append("-").append(yr), Toast.LENGTH_LONG).show();
    }
};
// For TimePicker
private TimePickerDialog.OnTimeSetListener myTimeListener = new OnTimeSetListener() {

    @Override
    public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
        // TODO Auto-generated method stub
        h = hourOfDay;
        m = minute;
        Toast.makeText(MainActivity.this,
        new StringBuilder().append(h).append(":").append(m),
        Toast.LENGTH_LONG).show();
    }
};

我已经发现并纠正了这个问题。现在我可以打开日期选择器对话框。我忘了写show()方法写一个答案并接受它。这样,未来的傻瓜就会知道该怎么做(无意冒犯)。我已经发现并纠正了这个问题。现在我可以打开日期选择器对话框。我忘了写show()方法写一个答案并接受它。这样,未来的傻瓜就会知道该做什么(没有冒犯的意思)。