zoukankan      html  css  js  c++  java
  • 转--一款漂亮实用的Android开源日期控件timessquare

    这个开源控件可以兼容到SDK8版本,可以自定义显示的年月日,以及时间范围,如图

     

     

    如果我们只想显示两个月的日期选择区间:

    final Calendar month = Calendar.getInstance();
    month.add(Calendar.MONTH, 1);

    然后初始化时候可以传进去一些参数

    复制代码
     1 final CalendarPickerView dialogView = (CalendarPickerView) getLayoutInflater()
     2                         .inflate(R.layout.dialog, null, false);
     3    if (text.getText().toString().equals("")) {
     4        dialogView.init(new Date(), month.getTime()).withSelectedDate(new Date());
     6       } else {
     7         Date date = DateUtils.getDate(text.getText().toString(), "yyyy-MM-dd");
     9         dialogView.init(new Date(), month.getTime()).withSelectedDate(date);
    11        }
    复制代码

    其中withSelectedDate(date)表示指定当前显示的日期,可以自定义。

    具体Demo代码

    复制代码
      1 package com.example.timesample;
      2 
      3 import java.util.Calendar;
      4 import java.util.Date;
      5 import java.util.GregorianCalendar;
      6 
      7 import com.squareup.timessquare.CalendarPickerView;
      8 import com.squareup.timessquare.CalendarPickerView.SelectionMode;
      9 
     10 import android.os.Bundle;
     11 import android.app.Activity;
     12 import android.app.AlertDialog;
     13 import android.content.DialogInterface;
     14 import android.util.Log;
     15 import android.view.Menu;
     16 import android.view.View;
     17 import android.view.View.OnClickListener;
     18 import android.widget.Button;
     19 import android.widget.TextView;
     20 import android.widget.Toast;
     21 
     22 public class MainActivity extends Activity {
     23 
     24     private Button btn;
     25     private TextView text;
     26 
     27     @Override
     28     protected void onCreate(Bundle savedInstanceState) {
     29         super.onCreate(savedInstanceState);
     30         setContentView(R.layout.activity_main);
     31         btn = (Button) findViewById(R.id.button1);
     32         text = (TextView) findViewById(R.id.textView1);
     33 
     34         final Calendar nextYear = Calendar.getInstance();
     35         nextYear.add(Calendar.YEAR, 1);
     36         final Calendar month = Calendar.getInstance();
     37         month.add(Calendar.MONTH, 1);
     38 
     39         btn.setOnClickListener(new OnClickListener() {
     40 
     41             @Override
     42             public void onClick(View v) {
     43                 // TODO Auto-generated method stub
     44 
     45                 final CalendarPickerView dialogView = (CalendarPickerView) getLayoutInflater()
     46                         .inflate(R.layout.dialog, null, false);
     47                 if (text.getText().toString().equals("")) {
     48                     dialogView.init(new Date(), month.getTime())
     49                             .withSelectedDate(new Date());
     50                 } else {
     51                     Date date = DateUtils.getDate(text.getText().toString(),
     52                             "yyyy-MM-dd");
     53                     dialogView.init(new Date(), month.getTime())
     54                             .withSelectedDate(date);
     55                 }
     56 
     57                 new AlertDialog.Builder(MainActivity.this)
     58                         .setTitle("时间选择控件")
     59                         .setView(dialogView)
     60                         .setNeutralButton("返回",
     61                                 new DialogInterface.OnClickListener() {
     62                                     @Override
     63                                     public void onClick(
     64                                             DialogInterface dialogInterface,
     65                                             int i) {
     66                                         dialogInterface.dismiss();
     67                                     }
     68                                 })
     69                         .setPositiveButton("确定",
     70                                 new DialogInterface.OnClickListener() {
     71                                     @Override
     72                                     public void onClick(
     73                                             DialogInterface dialogInterface,
     74                                             int i) {
     75                                         long sd = dialogView.getSelectedDate()
     76                                                 .getTime();
     77                                         Date dat = new Date(sd);
     78                                         GregorianCalendar gc = new GregorianCalendar();
     79                                         gc.setTime(dat);
     80                                         java.text.SimpleDateFormat format = new java.text.SimpleDateFormat(
     81                                                 "yyyy-MM-dd ");
     82                                         String sb = format.format(gc.getTime());
     83                                         System.out.println(sb);
     84                                         text.setText(sb);
     85                                         dialogInterface.dismiss();
     86                                     }
     87                                 }).create().show();
     88             }
     89         });
     90 
     91     }
     92 
     93     @Override
     94     public boolean onCreateOptionsMenu(Menu menu) {
     95         // Inflate the menu; this adds items to the action bar if it is present.
     96         getMenuInflater().inflate(R.menu.main, menu);
     97         return true;
     98     }
     99 
    100 }
    复制代码

    当前这个简单小Demo仅仅实现了其强大功能的一小部门,timessquare时间控件还支持选择时间段等强大功能,需要用到可以看源码。

    Demo下载

    http://download.csdn.net/detail/lj419855402/8232371

  • 相关阅读:
    《RabbitMQ 实战》读书笔记
    使用jstack命令查看CPU高占用的问题记录
    两种常见的单元测试方式(笔记)
    Apache Solr入门教程(转)
    搜索引擎选择: Elasticsearch与Solr(转)
    CopyOnWriteArrayList与Collections.synchronizedList的性能对比(转)
    理解list和vector的区别
    从上往下打印出二叉树的每个节点,同层节点从左至右打印。
    TypeError: Object function (req, res, next) { app.handle(req, res, next); } has no method 'configure'
    Cannot find module 'crc'
  • 原文地址:https://www.cnblogs.com/awkflf11/p/4370519.html
Copyright © 2011-2022 走看看