在 android 中设置没有 DateTime 和 TimePicker 的闹钟

Set Alarm without DateTime and TimePicker in 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);
                }

您确定运行此代码的参数正确吗?因为我已经尝试过你的代码并且它对我有用(我的意思是我从来没有进入 "Invalid Date/Time" 块)。我做了一些修改:

    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);
        }
    }

首先,您要在当前时间加上两分钟。如果条件无论如何都不能为真。 if 语句没用,去掉它,用下面的代码肯定能帮到你!

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