繁体   English   中英

首次尝试时,Android Java时间选择器侦听器无法检索小时和分钟

[英]Android Java time picker listener cannot retrieve hours and minutes for first try

我无法获得用户为我的Android应用程序设置的分钟和小时数。 问题是,当我第一次尝试在public void onTimeSet...函数中设置时间时,我的btn(hour+":"+minutes)显示0:0但是如果我第二次尝试它,那么btn能够显示时间。 我不确定是什么问题或我的编码逻辑是错误的...任何人都可以帮我跟踪它? 这是我的代码:

RelativeLayout rlSun = (RelativeLayout)rootView.findViewById(R.id.sundayRelativeLayout);
rlSun.setOnLongClickListener(new View.OnLongClickListener() {
    @Override
    public boolean onLongClick(View v) {
        //openTimePickerDialog(true);
        Calendar currenttime = Calendar.getInstance();

        final TimePickerDialog  timePickerDialog = new TimePickerDialog(
                getActivity(), //because this class extends fragment
                new TimePickerDialog.OnTimeSetListener() {
                    @Override
                    public void onTimeSet(TimePicker view, int hourOfDay,
                                          int minute) {
                        // Get the selected time
                        hour =hourOfDay;
                        minutes = minute;
                    }       
                 }, 
                 currenttime.get(Calendar.HOUR_OF_DAY), 
                 currenttime.get(Calendar.MINUTE), 
                 false);
        timePickerDialog.setTitle("Set Time");  
        timePickerDialog.setButton(
              DialogInterface.BUTTON_POSITIVE,
              "Set",
              new DialogInterface.OnClickListener() {
                  public void onClick(DialogInterface dialog, int which) {
                      if (which == DialogInterface.BUTTON_POSITIVE) {
                          RelativeLayout rl = (RelativeLayout)rootView.findViewById(R.id.sundayRelativeLayout);
                          Button btn = new Button(getActivity());
                          btn.setText(hour+":"+minutes);
                          RelativeLayout.LayoutParams newParams = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT,60);
                          rl.addView(btn,newParams);
                      }
                  }
              });
              timePickerDialog.setButton(DialogInterface.BUTTON_NEGATIVE,
                  "Cancel",
                  new DialogInterface.OnClickListener() {
                        public void onClick(DialogInterface dialog, int which){
                            if (which == DialogInterface.BUTTON_NEGATIVE){
                                timePickerDialog.cancel();
                            }
                  }
              });
              timePickerDialog.show();

附加信息:我已在课堂外宣布hour and minutes

在打开对话框之前,需要将hourminutes变量初始化为当前时间。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM