2016-03-02 132 views
1

我想设置没有日期时间选择器和时间选择器的闹钟。它总是显示无效的时间。这里是我的代码设置闹钟没有日期时间和时间选择器在android

public void setClockTimeScheduler(Context ctx) { 
     // TODO Auto-generated method stub 
      Calendar current = Calendar.getInstance(); 
      Calendar cal = Calendar.getInstance(); 
      cal.set(cal.get(Calendar.YEAR), 
        cal.get(Calendar.MONTH), 
        cal.get(Calendar.DAY_OF_MONTH), 
        cal.get(Calendar.HOUR), 
        cal.get(Calendar.MINUTE)+2, 00); 

      if(cal.compareTo(current) <= 0){ 
      //The set Date/Time already passed 
       Toast.makeText(ctx, "Invalid Date/Time"+cal.compareTo(current)+"Or"+current, 
        Toast.LENGTH_LONG).show(); 
       }else{ 
        setAlarmScheduler(cal,ctx); 
       } 
+0

你的行为想要做什么......不能理解 –

+0

我正在添加当前时间+2分钟并设置警报。所以每2分钟后会有一些事件触发。 – Ravi

回答

0

你确定,你正在运行这个代码的正确参数?因为我已经试过你的代码,它对我有用(我的意思是我从来没有进入“无效的日期/时间”块)。我做了一些修改:

public void setClockTimeScheduler(Context ctx){ 
     Calendar current = Calendar.getInstance(); 
     Calendar cal = Calendar.getInstance(); 
     cal.set(Calendar.MINUTE, current.get(Calendar.MINUTE)+2); 
     if(cal.compareTo(current) <= 0){ 
      //The set Date/Time already passed 
      Log.d("MainActivity", "Invalid Date/Time" + cal.compareTo(current) + "Or" + current); 
     }else{ 
//   setAlarmScheduler(cal, ctx); 
     } 
    } 
+0

可以请你用日期时间来实现它,并尝试比较。我不明白这个代码cal.set(Calendar.MINUTE,current.get(Calendar.MINUTE)+2); – Ravi

+0

这是一样的,你做的事:“cal.set(cal.get(Calendar.YEAR), cal.get(的Calendar.MONTH), cal.get(Calendar.DAY_OF_MONTH), cal.get(Calendar.HOUR ), cal.get(Calendar.MINUTE)+2,00);“只是doasn't重置秒;) – bendaf

+0

我仍然无效吐司 – Ravi

1

首先,你要在当前时间增加两分钟。如果条件不可能不计成本的话。如果声明是无用的删除它并使用下面的代码它一定会帮助你!

public void setClockTimeScheduler(Context ctx){ 
    Calendar cal = Calendar.getInstance(); 
    cal.add(Calendar.MINUTE,2); 
    setAlarmScheduler(cal, ctx); 
    }