Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/233.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,大家早上好 1) 我试着比较两个时间选择器,但效果不太好。 它总是给出相同的选项-else int firstHouer =fromTimePicker.getCurrentHour(); int firstdMinute =fromTimePicker.getCurrentMinute(); int seccoundHouer = fromTimePicker.getCurrentHour(); int seccoundMinute =fromTimePicker.getCurrentMinu

大家早上好

1) 我试着比较两个时间选择器,但效果不太好。 它总是给出相同的选项-else

int firstHouer =fromTimePicker.getCurrentHour();
int firstdMinute =fromTimePicker.getCurrentMinute();
int seccoundHouer = fromTimePicker.getCurrentHour();
int seccoundMinute =fromTimePicker.getCurrentMinute();

       if (firstHouer + firstdMinute < seccoundHouer + seccoundMinute) 
       {
              Toast toast = Toast.makeText(getApplicationContext(), "B" , Toast.LENGTH_LONG);
              toast.show();
       }
       else
       {
              Toast toast = Toast.makeText(getApplicationContext(), "A" , Toast.LENGTH_LONG);
              toast.show();
       }
int firstHouer=fromTimePicker.getCurrentHour();
int firstdMinute=fromTimePicker.getCurrentMinute();
int secondhouer=fromTimePicker.getCurrentHour();
int seconAdminute=fromTimePicker.getCurrentMinute();
如果(第一小时+第一分钟<第二小时+第二小时)
{
Toast Toast=Toast.makeText(getApplicationContext(),“B”,Toast.LENGTH\u LONG);
toast.show();
}
其他的
{
Toast Toast=Toast.makeText(getApplicationContext(),“A”,Toast.LENGTH\u LONG);
toast.show();
}
2) 当我放置“:”符号时,我还有另一个问题,文本会改变方向


如果要比较相对的24小时时间,应将小时和分钟组件转换为相同的单位,然后进行比较。例如,要使用分钟数比较两者:

int firstHouer = fromTimePicker.getHour();     // getCurrentHour() is deprecated
int firstdMinute = fromTimePicker.getMinute(); // getCurrentMinute() is deprecated
int seccoundHouer = toTimePicker.getHour();    // or whatever it is called
int seccoundMinute = toTimePicker.getMinute(); // or whatever it is called

if (60*firstHouer + firstdMinute < 60*seccoundHouer + seccoundMinute) {
    Toast toast = Toast.makeText(getApplicationContext(), "B" , Toast.LENGTH_LONG);
    toast.show();
}
else {
    Toast toast = Toast.makeText(getApplicationContext(), "A" , Toast.LENGTH_LONG);
    toast.show();
}
int firstHouer=fromTimePicker.getHour();//getCurrentHour()已弃用
int firstdMinute=fromTimePicker.getMinute();//getCurrentMinute()已弃用
int secondhouer=toTimePicker.getHour();//或者不管叫什么
int seconAdminute=toTimePicker.getMinute();//或者不管叫什么
如果(60*firstHouer+firstdMinute<60*secondhouer+seccondminute){
Toast Toast=Toast.makeText(getApplicationContext(),“B”,Toast.LENGTH\u LONG);
toast.show();
}
否则{
Toast Toast=Toast.makeText(getApplicationContext(),“A”,Toast.LENGTH\u LONG);
toast.show();
}

编辑:正如@Dennis刚刚指出的,您的代码中也有一个输入错误,并且您在两组时间中使用相同的
时间选择器,这可能不是您想要的。

您正在两次之后确定小时和分钟。
执行速度如此之快(即使在速度较慢的机器上),以至于值几乎不会有任何不同,只有在一分钟(或一小时)的开关上才会正确执行,但在这种情况下,由于Tim在回答中描述的问题,还会触发else


如果你经常尝试你的代码,你迟早会发现,在同一个小时里,第一次得到的分钟数与第二次得到的分钟数不同,而且低于第二次得到的分钟数。然后您将点击
然后点击
部分。

另外,他/她正在使用相同的
时间选择器
对象。getCurrentHour()和getCurrentMinute()是。建议使用getHour()&getMinute()。@SuryakantBharti我过去所做的是绑定一个
OnTimeSetListener
回调,它以小时和分钟作为参数传递。然后,我们甚至不需要直接给时间选择器打电话。@TimBiegeleisen你的主意真是“好主意”!但是,我只是在为这次行动提建议:)@TimBiegeleisen是的,你是对的。但是,我对不推荐的技术有反感。在Android中,GCM、框架片段、框架加载器等已被弃用。尽管如此,人们还是不断地使用/提及这些。这是不正确的。:)可以尝试在第一个小时和第二个小时之间添加Thread.sleep()变量吗?最好将嵌套条件括在括号中。