Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/350.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/190.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
Android Java时间选择器侦听器无法为首次尝试检索小时和分钟_Java_Android_Timepicker - Fatal编程技术网

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

Android Java时间选择器侦听器无法为首次尝试检索小时和分钟,java,android,timepicker,Java,Android,Timepicker,我很难获得用户为我的android应用程序设置的分钟和小时数。问题是,当我第一次尝试在public void onTimeSet…函数中设置时间时,我的btn(hour+“:“+minutes)显示0:0,但如果我第二次尝试,则btn能够显示时间。我不确定是什么问题,或者我的编码逻辑有问题……有人能帮我追踪吗? 这是我的密码: RelativeLayout rlSun = (RelativeLayout)rootView.findViewById(R.id.sundayRelativeLayou

我很难获得用户为我的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
在打开对话框之前,您需要将
hour
minutes
变量初始化为当前时间。

如果我更改在onTimeSet方法中创建按钮的代码,我尝试进行更改,是的,它可以工作,但当用户单击“取消”时,它仍然会添加按钮,我想要的是,只有在用户单击“时间选择器”对话框中的“设置”后,才会创建该按钮。您需要将这些变量初始化为当前时间(而不是0)
hour=currenttime.get(日历.hour\u/天)
minutes=currenttime.get(Calendar.MINUTE)将其添加到
timePickerDialog.show()之前行。我明白了,我没有正确阅读你的评论,现在问题解决了!万分感谢!问题是,在onTimeSet方法中,我无法执行hour=hourOfDay和minutes=minute,因为我打印的hour和minutes是0:0,奇怪的是,如果我将时间设置为第二次,它就会被成功检索。我也尝试了你的解决方案,但它并没有像我想要的那样工作,因为它只是一直在为按钮设置当前的小时和分钟。所以这个问题还没有解决。