00601Calendar

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/FrameLayout1"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="${relativePackage}.${activityClass}" >

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:text="@string/hello_world"
        android:textSize="32sp"
        android:typeface="monospace" />


</FrameLayout>
package com.example.app6_1;

import java.util.Calendar;

import android.app.Activity;
import android.graphics.Color;
import android.os.Bundle;
import android.text.SpannableString;
import android.text.method.LinkMovementMethod;
import android.text.style.BackgroundColorSpan;
import android.text.style.ClickableSpan;
import android.text.style.ForegroundColorSpan;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.TextView;
import android.widget.Toast;

public class MainActivity extends Activity {

    TextView textView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        textView = (TextView) this.findViewById(R.id.textView1);

        StringBuilder sb = new StringBuilder();
        Calendar today = Calendar.getInstance();
        Calendar cal = Calendar.getInstance();
        cal.set(Calendar.DAY_OF_MONTH, 1);
        sb.append("SU MO TU WE TH FR SA\n");
        int pos = 0;

        for (int i = 1; i < cal.get(Calendar.DAY_OF_WEEK); i++) {
            sb.append("   ");
        }
        for (int i = 1; i <= cal.getActualMaximum(Calendar.DAY_OF_MONTH); i++) {
            if (i == today.get(Calendar.DAY_OF_MONTH)) {
                pos = sb.length();
            }

            sb.append(String.format("%02d ", i));

            if (cal.get(Calendar.DAY_OF_WEEK) == Calendar.SATURDAY) {
                sb.append("\n");
            }
            cal.add(Calendar.DAY_OF_MONTH, 1);
        }

        SpannableString ss = new SpannableString(sb.toString());
        ss.setSpan(new ForegroundColorSpan(Color.RED), pos, pos + 2, 0);
        ss.setSpan(new BackgroundColorSpan(Color.YELLOW), pos, pos + 2, 0);
        ss.setSpan(new ClickableSpan() {
            @Override
            public void onClick(View arg0) {
                // TODO Auto-generated method stub
                Toast.makeText(MainActivity.this, "21:00要和女孩子約會",
                        Toast.LENGTH_SHORT).show();
            }

        }, pos, pos + 2, 0);
        textView.setText(ss);
        textView.setMovementMethod(LinkMovementMethod.getInstance());
    }

}