本文介绍Android平台上几种有用的的日历控件。日历控件在Web开发中有很多的解决方案,而且很容易实现,但是在Android平台上的解决方案较少且不容易实现。下面给大家开始介绍几种及我们实现的示例。

  我们大家都知道,在Android平台3.0中才新增了日历视图控件,可以显示网格状的日历内容,那么对于Android 3.0以下的版本要使用日历控件只能借助第三方,目前用的最多的是CalendarView。先简单介绍下CalendarView日历控件的使用。

  android.widget.CalendarView是从android.widget.FrameLayout中继承的。

  CalendarView 类提供了基本的日历设置方法,看下面代码所示:
    long getDate();  //获取从1970年,1月1日,0点0分0秒到现在的毫秒数,因为返回是long型最终只能截止到2038年    int getFirstDayOfWeek();  //获取当天是本周的第几天,Android123提示返回的定义在java.util.Calendar类中,比如Calendar.Monday为星期一,定义值为2。         long getMaxDate();  //获取CalendarView支持1970年到那天的最大天数         long getMinDate(); //获取CalendarView支持1970年到那天的最小天数         boolean getShowWeekNumber();  //获取是否显示星期号         boolean isEnabled();  //是否显示本日历视图         public void setDate(long date, boolean animate, boolean center); //设置选择日期到1970年的描述         void setDate(long date); //设置选择的日期描述到1970年         void setEnabled(boolean enabled); //设置是否启用视图         void setFirstDayOfWeek(int firstDayOfWeek);  //设置本周起始天数         void setMaxDate(long maxDate);          void setMinDate(long minDate);          void setOnDateChangeListener(CalendarView.OnDateChangeListener listener);   //日历视图修改的接口,这个介绍看下面。         void setShowWeekNumber(boolean showWeekNumber); //设置是否显示周号

  有关日历控件CalendarView的设置接口 android.widget.CalendarView.OnDateChangeListener 只实现了一个回调方法void onSelectedDayChange(CalendarView view, int year, int month, int dayOfMonth)。

  这四个参数的具体介绍为:

  view:CalendarView对象。

  year:要设置的年。

  month:要设置的月份,范围是0-11。

  dayOfMonth:要设置每月的某一天。

  使用示例如下:

public class CalendarActivity extends Activity {    /** Called when the activity is first created. */    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);                CalendarView calendarView=(CalendarView) findViewById(R.id.calendarView1);        calendarView.setOnDateChangeListener(new OnDateChangeListener() {            @Override            public void onSelectedDayChange(CalendarView view, int year, int month,                    int dayOfMonth) {                // TODO Auto-generated method stub                String date = year + "年" + month + "月" + dayOfMonth + "日";                Toast.makeText(getApplicationContext(), date, 0).show();            }        });    }    }

  CalendarView控件的实现效果图如下所示:

  

  

  这是Android3.0及以上版本自带的日历控件,我们可通过流动鼠标滑轮来选择上一月或是下一月,然后选择自己想要的日期,感觉就是灵活度不够,如果需要CalendarView更多的信息,可以查看Android官方文档:http://developer.android.com/reference/android/widget/CalendarView.html,这里不再详述。

  当然了,有的朋友可能在Android3.0以下的版本做开发,如果在Android3.0以下的版本中使用日历控件,第一种解决方案是使用第三方开发的控件,就如同下面介绍的这几种;第二种解决方案是我们可以将Android3.0以上的代码移植到以下的版本中。

  下面给大家展示其他几种有用的日历控件效果图:

 

  这是CalendarView的效果图。可以实现上月和下月翻页,设置事件等。如果是打开日历控件界面则可通过如下方式:

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

  如果是想点击控件上选择某一个日期并返回结果,可通过下面方式:

// 打开日历控件界面    startActivityForResult(new Intent(Intent.ACTION_PICK).            setDataAndType(null, CalendarActivity.MIME_TYPE), 100);    // 重写onActivityResult()方法处理返回的日期    @Override    public void onActivityResult(int requestCode, int resultCode, Intent data) {        if(resultCode==RESULT_OK) {            int year = data.getIntExtra("year", 0);   // 得到年            int month = data.getIntExtra("month", 0); // 得到月            int day = data.getIntExtra("day", 0);     // 得到天            // 格式化日期显示            final Calendar dat = Calendar.getInstance();            dat.set(Calendar.YEAR, year);            dat.set(Calendar.MONTH, month);            dat.set(Calendar.DAY_OF_MONTH, day);                        // 显示日期结果            SimpleDateFormat format = new SimpleDateFormat("yyyy MMM dd");            Toast.makeText(TestActivity.this, format.format(dat.getTime()), Toast.LENGTH_LONG).show();             }    }

  下载地址:点击下载

 

  这个日历控件也比较强大,但外观不够友好,有兴趣或需要的朋友可以将其进行修改。

  下载地址:点击下载

  

  下载地址:点击下载

  

  这是我们自己实现的日历控件。可以通过选择日期查询相关数据等操作。

  下载地址:/Files/hanyonglu/AndroidFile/MyCalendarDemo.rar

  以上关于Android平台中几种有用的日历控件,关于源码已经发布。

  最后,希望转载的朋友能够尊重作者的劳动成果,加上转载地址:http://www.cnblogs.com/hanyonglu/archive/2012/03/26/2418178.html谢谢。

  完毕。^_^

更多相关文章

  1. Python3原生编写月份计算工具
  2. Android(安卓)事件拦截机制一种粗鄙的解释
  3. CropImageView android上的一个图片裁剪控件
  4. Android使用shape绘制控件
  5. [置顶] Android自定义控件系列九:从源码看Android触摸事件分发机
  6. android中使用selector动态改变imageView或ImageButton的背景
  7. 切换tab的时候recyclerview滑动到最底部
  8. Android(安卓)BaseAdapter与ListView的使用
  9. Android中广告条轮播(Banner)的实现

随机推荐

  1. Android(安卓)获取已经安装的程序
  2. phonegap android更新
  3. Android(安卓)mk如何使用第三方jar
  4. android常用代码
  5. Android中各种消息监听机制
  6. android 圆形的图片里面带字
  7. android service
  8. android滑轮选择控件——whell
  9. Android获取文件的MD5值
  10. 获取android build-tools/platform-tools