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

  • 相关阅读:
    Android Camera Api的心得
    apache禁止訪问某些文件或文件夹的方法
    查询和删除数据表中反复数据的sql
    设计模式C++实现——外观模式
    排序(杭电1106)
    《JAVA程序设计》实训第一天——《猜猜看》游戏
    CSS3选择器(全)
    【原创】TCP超时重传机制探索
    使用Win32 API实现生产者消费者线程同步
    翻翻git之---溜的飞起的载入效果AVLoadingIndicatorView
  • 原文地址:https://www.cnblogs.com/LIANQQ/p/4149127.html
Copyright © 2011-2022 走看看