Android自定义简易时间选择器

本文介绍如何创建一个自定义的时间选择器,该选择器由三个可滑动的列表视图组成,分别显示年份、月份和日期。当停止滑动时,选择的日期会居中显示。通过详细讲解布局设计和代码实现,展示了如何实现这一功能。提供了一个完整的Demo下载链接。
摘要由CSDN通过智能技术生成

首先,我们来看下这个时间选择器大概的样子


我们来仔细观察下这个布局,在选择日期的时候,我们可以看做是可以上下滑动的三个listview的横向组合,listview的内容则是年份,月份和日期。

然后这个选择器中可见的是3个item,中间显示的才是我们要选定的日期。

来看下功能,比如说现在我们要选择年份,当我们停止滑动年份的这个选择器的时候,选择器会停下来并且会把我们所想选择的年份居中显示。

好了,现在我们来开始写这个选择器的布局吧。

这个是我们的首页


   
   

   
   



    
    
    

    
    
    

   
   

接下来就是我们的日期选择器的界面啦!


   
   

   
   

    
    
    

    
    
    

        
     
     

        
     
     

            
      
      

            
      
      

            
      
      
        
     
     
    
    
    

    
    
    

        
     
     

        
     
     
    
    
    

   
   

我们可以看到这个时间选择器上的listview的可见的item是有三个,那么这样如何实现呢,我们可以把listview的高度设成固定值,其item的高度就设置成listview高度的1/3,就可以啦!不多说,上代码:


   
   

   
   

    
    

    
    


   
   

好啦,布局我们有了可以上代码了

首先是我们的日期选择器的代码,具体我在这不多说了,代码里有很详细的注解


package com.example.peiwc.myapplicationtime;

import android.app.Dialog;
import android.content.Context;
import android.content.DialogInterface;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AbsListView;
import android.widget.BaseAdapter;
import android.widget.ListView;
import android.widget.TextView;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.List;


public class CustomDialog extends Dialog {
    public CustomDialog(Context context, int theme) {
        super(context, theme);
    }

    public static class Builder {
        private int year;
        private int month;
        private int day;
        int y;
        private Context context;
        private DialogInterface.OnClickListener positiveButtonClickListener;
        private DialogInterface.OnClickListener negativeButtonClickListener;
        private ArrayList
   
   
    
     year_list, mouth_list, day_list;
        ListView lv1, lv2, lv3;

        public Builder(Context context) {
            this.context = context;
        }

        public Builder setPositiveButton(DialogInterface.On
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值