android-calendar-view 使用方法

红薯 发布于 2012/03/01 21:00
阅读 13K+
收藏 9

导入到项目

  1. 添加日历 Activity 到 AndroidManifest.xml
    <activity android:name="com.exina.android.calendar.CalendarActivity">
        
        <intent-filter>
            <action android:name="android.intent.action.PICK" />
            <category android:name="android.intent.category.DEFAULT" />
            <data android:mimeType="vnd.android.cursor.dir/vnd.exina.android.calendar.date" />
        </intent-filter>
        <intent-filter>
            <action android:name="android.intent.action.VIEW" />
            <category android:name="android.intent.category.DEFAULT" />
            <data android:mimeType="vnd.android.cursor.dir/vnd.exina.android.calendar.date" />
        </intent-filter>
    </activity>
  2. 拷贝如下源码到项目 src 目录
  3. com/exina/android/calendar/CalendarActivity.java
    com/exina/android/calendar/CalendarView.java
    com/exina/android/calendar/Cell.java
  4. 拷贝如下资源文件到项目 res 目录
  5. layout: main.xml
    drawable: background.png, calendar_week.png, typeb_calendar_today.png
    values: dimens.xml

显示日历

使用 Intent 简单的调用日历组件

startActivity(new Intent(Intent.ACTION_VIEW).setDataAndType(null, CalendarActivity.MIME_TYPE));

使用日历来选择日期

通过使用 startActivityForResult 来显示日历并返回选择的日期

// 1) start calendar view
startActivityForResult(new Intent(Intent.ACTION_PICK).setDataAndType(null, CalendarActivity.MIME_TYPE), 100);

// 2) implement your own onActivityResult method to handle returned date
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    if(resultCode==RESULT_OK) {
        int year = data.getIntExtra("year", 0);   // get number of year
        int month = data.getIntExtra("month", 0); // get number of month 0..11
        int day = data.getIntExtra("day", 0);     // get number of day 0..31

        // format date and display on screen
        final Calendar dat = Calendar.getInstance();
        dat.set(Calendar.YEAR, year);
        dat.set(Calendar.MONTH, month);
        dat.set(Calendar.DAY_OF_MONTH, day);
        
        // show result
        SimpleDateFormat format = new SimpleDateFormat("yyyy MMM dd");
        Toast.makeText(TestActivity.this, format.format(dat.getTime()), Toast.LENGTH_LONG).show();
                
    }
}
下载 android-calendar-view
加载中
0
张魁文
很好用。要是可以直接显示年、月并且可以选择就好了。
0
奋斗哥
奋斗哥
感谢分享。
返回顶部
顶部