diff --git a/AlarmReceiver.java.txt b/AlarmReceiver.java.txt index f35ed7b..99e5d8e 100644 --- a/AlarmReceiver.java.txt +++ b/AlarmReceiver.java.txt @@ -3,18 +3,17 @@ package net.micode.notes.ui; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; - + +//以上是引入依赖 public class AlarmReceiver extends BroadcastReceiver { +//这是一个主类 @Override public void onReceive(Context context, Intent intent) { intent.setClass(context, AlarmAlertActivity.class); - //启动AlarmAlertActivity + //用来启动AlarmAlertActivity intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); - //activity要存在于activity的栈中,而非activity的途径启动activity时必然不存在一个activity的栈 + //activity要存在于activity的栈中 //所以要新起一个栈装入启动的activity context.startActivity(intent); } -} -//这是实现alarm这个功能最接近用户层的包,基于上面的两个包, -//作用还需要深究但是对于setClass和addFlags的 - \ No newline at end of file +} \ No newline at end of file diff --git a/DateTimePicker.java.txt b/DateTimePicker.java.txt index c7fbbcd..e0d768c 100644 --- a/DateTimePicker.java.txt +++ b/DateTimePicker.java.txt @@ -11,10 +11,12 @@ import android.text.format.DateFormat; import android.view.View; import android.widget.FrameLayout; import android.widget.NumberPicker; - + +//以上是引入依赖 public class DateTimePicker extends FrameLayout { +//这是一个主类 //FrameLayout是布局模板之一 - //所有的子元素全部在屏幕的右上方 + //所有的选项全部在屏幕的右上方 private static final boolean DEFAULT_ENABLE_STATE = true; private static final int HOURS_IN_HALF_DAY = 12; @@ -30,15 +32,14 @@ public class DateTimePicker extends FrameLayout { private static final int MINUT_SPINNER_MAX_VAL = 59; private static final int AMPM_SPINNER_MIN_VAL = 0; private static final int AMPM_SPINNER_MAX_VAL = 1; - //初始化控件 + //控件的初始化 private final NumberPicker mDateSpinner; private final NumberPicker mHourSpinner; private final NumberPicker mMinuteSpinner; private final NumberPicker mAmPmSpinner; - //NumberPicker是数字选择器 - //这里定义的四个变量全部是在设置闹钟时需要选择的变量(如日期、时、分、上午或者下午) + //NumberPicker是数字选择器,这些变量是日期、时、分、上午或者下午 private Calendar mDate; - //定义了Calendar类型的变量mDate,用于操作时间 + //mDate,用于操作时间 private String[] mDateDisplayValues = new String[DAYS_IN_ALL_WEEK]; private boolean mIsAm; @@ -52,17 +53,19 @@ public class DateTimePicker extends FrameLayout { private OnDateTimeChangedListener mOnDateTimeChangedListener; private NumberPicker.OnValueChangeListener mOnDateChangedListener = new NumberPicker.OnValueChangeListener() { +//OnValueChangeListener,这是时间改变监听器,这里主要是对日期的监听 @Override public void onValueChange(NumberPicker picker, int oldVal, int newVal) { mDate.add(Calendar.DAY_OF_YEAR, newVal - oldVal); updateDateControl(); +//updateDateControl是同步更新操作 onDateTimeChanged(); } - };//OnValueChangeListener,这是时间改变监听器,这里主要是对日期的监听 - //将现在日期的值传递给mDate;updateDateControl是同步操作 + }; + //将现在日期的值传递给mDate; private NumberPicker.OnValueChangeListener mOnHourChangedListener = new NumberPicker.OnValueChangeListener() { - //这里是对 小时(Hour) 的监听 + //这里是对Hour的监听 @Override public void onValueChange(NumberPicker picker, int oldVal, int newVal) { boolean isDateChanged = false; @@ -73,7 +76,7 @@ public class DateTimePicker extends FrameLayout { cal.setTimeInMillis(mDate.getTimeInMillis()); cal.add(Calendar.DAY_OF_YEAR, 1); isDateChanged = true; - //这里是对于12小时制时,晚上11点和12点交替时对日期的更改 + //这里是对于12小时制时,中午11点和12点交替时对日期的更改 } else if (mIsAm && oldVal == HOURS_IN_HALF_DAY && newVal == HOURS_IN_HALF_DAY - 1) { cal.setTimeInMillis(mDate.getTimeInMillis()); cal.add(Calendar.DAY_OF_YEAR, -1); @@ -90,7 +93,7 @@ public class DateTimePicker extends FrameLayout { cal.setTimeInMillis(mDate.getTimeInMillis()); cal.add(Calendar.DAY_OF_YEAR, 1); isDateChanged = true; - //这里是对于24小时制时,晚上11点和12点交替时对日期的更改 + //这里是对于24小时制时,中午11点和12点交替时对日期的更改 } else if (oldVal == 0 && newVal == HOURS_IN_ALL_DAY - 1) { cal.setTimeInMillis(mDate.getTimeInMillis()); cal.add(Calendar.DAY_OF_YEAR, -1); @@ -112,7 +115,7 @@ public class DateTimePicker extends FrameLayout { private NumberPicker.OnValueChangeListener mOnMinuteChangedListener = new NumberPicker.OnValueChangeListener() { @Override - //这里是对 分钟(Minute)改变的监听 + //这里是对Minute改变的监听 public void onValueChange(NumberPicker picker, int oldVal, int newVal) { int minValue = mMinuteSpinner.getMinValue(); int maxValue = mMinuteSpinner.getMaxValue(); @@ -123,8 +126,8 @@ public class DateTimePicker extends FrameLayout { } else if (oldVal == minValue && newVal == maxValue) { offset -= 1; } - //如果原值为59,新值为0,则offset加1 - //如果原值为0,新值为59,则offset减1 + //如果原值为59,新值为0,则offset(小时)加1 + //如果原值为0,新值为59,则offset(小时)减1 if (offset != 0) { mDate.add(Calendar.HOUR_OF_DAY, offset); mHourSpinner.setValue(getCurrentHour()); @@ -169,7 +172,7 @@ public class DateTimePicker extends FrameLayout { public DateTimePicker(Context context, long date) { this(context, date, DateFormat.is24HourFormat(context)); - }//上面函数的得到的是一个天文数字(1970至今的秒数),需要DateFormat将其变得有意义 + }//上面函数的得到的是1970至今的秒数,该数据很大,需要DateFormat将其变得有意义 public DateTimePicker(Context context, long date, boolean is24HourView) { super(context); @@ -229,9 +232,7 @@ public class DateTimePicker extends FrameLayout { mAmPmSpinner.setEnabled(enabled); mIsEnabled = enabled; } - //存在疑问!!!!!!!!!!!!!setEnabled的作用 - //下面的代码通过原程序的注释已经比较清晰,另外可以通过函数名来判断 - //下面的各函数主要是对上面代码引用到的各函数功能的实现 + //下面的函数主要是对上面代码引用到的各函数功能的具体实现 @Override public boolean isEnabled() { return mIsEnabled; @@ -244,7 +245,7 @@ public class DateTimePicker extends FrameLayout { */ public long getCurrentDateInTimeMillis() { return mDate.getTimeInMillis(); - }//实现函数——得到当前的秒数 + }//实现函数(得到当前的秒数) /** * Set the current date @@ -256,7 +257,7 @@ public class DateTimePicker extends FrameLayout { cal.setTimeInMillis(date); setCurrentDate(cal.get(Calendar.YEAR), cal.get(Calendar.MONTH), cal.get(Calendar.DAY_OF_MONTH), cal.get(Calendar.HOUR_OF_DAY), cal.get(Calendar.MINUTE)); - }//实现函数功能——设置当前的时间,参数是date + }//实现函数(设置当前的时间,参数是Data) /** * Set the current date @@ -274,7 +275,7 @@ public class DateTimePicker extends FrameLayout { setCurrentDay(dayOfMonth); setCurrentHour(hourOfDay); setCurrentMinute(minute); - }//实现函数功能——设置当前的时间,参数是各详细的变量 + }//实现函数(设置当前的时间,参数是各详细的变量) /** * Get current year