Methods Summary |
---|
public int | getCount()
final int diffYear = mMaxDate.get(Calendar.YEAR) - mMinDate.get(Calendar.YEAR);
final int diffMonth = mMaxDate.get(Calendar.MONTH) - mMinDate.get(Calendar.MONTH);
return diffMonth + 12 * diffYear + 1;
|
public int | getFirstDayOfWeek()
return mFirstDayOfWeek;
|
public java.lang.Object | getItem(int position)
return null;
|
public long | getItemId(int position)
return position;
|
public android.view.View | getView(int position, android.view.View convertView, android.view.ViewGroup parent)
final SimpleMonthView v;
if (convertView != null) {
v = (SimpleMonthView) convertView;
} else {
v = new SimpleMonthView(mContext);
// Set up the new view
final AbsListView.LayoutParams params = new AbsListView.LayoutParams(
AbsListView.LayoutParams.MATCH_PARENT, AbsListView.LayoutParams.MATCH_PARENT);
v.setLayoutParams(params);
v.setClickable(true);
v.setOnDayClickListener(mOnDayClickListener);
if (mCalendarTextColors != null) {
v.setTextColor(mCalendarTextColors);
}
}
final int minMonth = mMinDate.get(Calendar.MONTH);
final int minYear = mMinDate.get(Calendar.YEAR);
final int currentMonth = position + minMonth;
final int month = currentMonth % 12;
final int year = currentMonth / 12 + minYear;
final int selectedDay;
if (isSelectedDayInMonth(year, month)) {
selectedDay = mSelectedDay.get(Calendar.DAY_OF_MONTH);
} else {
selectedDay = -1;
}
// Invokes requestLayout() to ensure that the recycled view is set with the appropriate
// height/number of weeks before being displayed.
v.reuse();
final int enabledDayRangeStart;
if (minMonth == month && minYear == year) {
enabledDayRangeStart = mMinDate.get(Calendar.DAY_OF_MONTH);
} else {
enabledDayRangeStart = 1;
}
final int enabledDayRangeEnd;
if (mMaxDate.get(Calendar.MONTH) == month && mMaxDate.get(Calendar.YEAR) == year) {
enabledDayRangeEnd = mMaxDate.get(Calendar.DAY_OF_MONTH);
} else {
enabledDayRangeEnd = 31;
}
v.setMonthParams(selectedDay, month, year, mFirstDayOfWeek,
enabledDayRangeStart, enabledDayRangeEnd);
v.invalidate();
return v;
|
public boolean | hasStableIds()
return true;
|
private boolean | isCalendarInRange(java.util.Calendar value)
return value.compareTo(mMinDate) >= 0 && value.compareTo(mMaxDate) <= 0;
|
private boolean | isSelectedDayInMonth(int year, int month)
return mSelectedDay.get(Calendar.YEAR) == year && mSelectedDay.get(Calendar.MONTH) == month;
|
void | setCalendarTextAppearance(int resId)Sets the text color, size, style, hint color, and highlight color from
the specified TextAppearance resource. This is mostly copied from
{@link TextView#setTextAppearance(Context, int)}.
final TypedArray a = mContext.obtainStyledAttributes(resId, R.styleable.TextAppearance);
final ColorStateList textColor = a.getColorStateList(R.styleable.TextAppearance_textColor);
if (textColor != null) {
mCalendarTextColors = textColor;
}
// TODO: Support font size, etc.
a.recycle();
|
void | setCalendarTextColor(android.content.res.ColorStateList colors)
mCalendarTextColors = colors;
|
public void | setFirstDayOfWeek(int firstDayOfWeek)
mFirstDayOfWeek = firstDayOfWeek;
notifyDataSetInvalidated();
|
public void | setOnDaySelectedListener(android.widget.SimpleMonthAdapter$OnDaySelectedListener listener)Sets the listener to call when the user selects a day.
mOnDaySelectedListener = listener;
|
public void | setRange(java.util.Calendar min, java.util.Calendar max)
mMinDate.setTimeInMillis(min.getTimeInMillis());
mMaxDate.setTimeInMillis(max.getTimeInMillis());
notifyDataSetInvalidated();
|
public void | setSelectedDay(java.util.Calendar day)Updates the selected day and related parameters.
mSelectedDay = day;
notifyDataSetChanged();
|