运行结果: 此Widget组件只包含五个类文件:
DateWidget
DateWidgetDayCell
DateWidgetDayHeader
DayStyle
SymbolButton
*红色为启动的activity DateWidget.java:
package com.iaiai;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import android.app.Activity;
import android.os.Bundle;
import android.view.Gravity;
import android.view.View;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.LinearLayout.LayoutParams;
import android.widget.TextView;
/**
*
*
* Title: DateWidget.java
*
*
* E-Mail: 176291935@
*
*
* QQ: 176291935
*
*
* Http:
*
*
* Create time: -8-19
*
*
* @author 丸子
* @version 0.0.1
*/
public class DateWidget extends Activity {
private ArrayList days = new ArrayList();
// private SimpleDateFormat dateMonth = new SimpleDateFormat("MMMM yyyy");
private Calendar calStartDate = Calendar.getInstance();
private Calendar calToday = Calendar.getInstance();
private Calendar calCalendar = Calendar.getInstance();
private Calendar calSelected = Calendar.getInstance();
LinearLayout layContent = null;
Button btnPrev = null;
Button btnToday = null;
Button btnNext = null;
private int iFirstDayOfWeek = Calendar.MONDAY;
private int iMonthViewCurrentMonth = 0;
private int iMonthViewCurrentYear = 0;
public static final int SELECT_DATE_REQUEST = 111;
private static final int iDayCellSize = 38;
private static final int iDayHeaderHeight = 24;
private static final int iTotalWidth = (iDayCellSize * 7);
private TextView tv;
private int mYear;
private int mMonth;
private int mDay;
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
iFirstDayOfWeek = Calendar.MONDAY;
mYear = calSelected.get(Calendar.YEAR);
mMonth = calSelected.get(Calendar.MONTH);
mDay = calSelected.get(Calendar.DAY_OF_MONTH);
setContentView(generateContentView());
calStartDate = getCalendarStartD