Java 它总是落在';其他';条件(计时器选择器)
大家早上好 1) 我试着比较两个时间选择器,但效果不太好。 它总是给出相同的选项-elseJava 它总是落在';其他';条件(计时器选择器),java,android,Java,Android,大家早上好 1) 我试着比较两个时间选择器,但效果不太好。 它总是给出相同的选项-else int firstHouer =fromTimePicker.getCurrentHour(); int firstdMinute =fromTimePicker.getCurrentMinute(); int seccoundHouer = fromTimePicker.getCurrentHour(); int seccoundMinute =fromTimePicker.getCurrentMinu
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()变量吗?最好将嵌套条件括在括号中。