Advertisement

Android各种时间选择器与日历?

阅读量:

一、实现多种时间选择器

1.点击跳出弹框,选择年月日(使用到units目录下的menPopupWindow类)

复制代码
 package com.ruidde.csndresourcedemo.units;

    
  
    
 import android.content.Context;
    
 import android.graphics.drawable.BitmapDrawable;
    
 import android.view.Gravity;
    
 import android.view.LayoutInflater;
    
 import android.view.View;
    
 import android.view.ViewGroup;
    
 import android.widget.Button;
    
 import android.widget.EditText;
    
 import android.widget.PopupWindow;
    
 import android.widget.TextView;
    
 import android.widget.Toast;
    
  
    
 import com.ruidde.csndresourcedemo.R;
    
  
    
 public class menPopupWindow {  private Context context;
    
     private PopupWindow menuWindow;
    
     private LayoutInflater inflater = null;
    
     private CalendarView calendarView;
    
     public menPopupWindow(Context context){
    
     this.context = context;
    
     inflater = LayoutInflater.from(context);
    
     }
    
     /** * 初始化popupWindow
    
      * * @param view
    
      */
    
     public void showPopwindow(View view) {
    
     menuWindow = new PopupWindow(view, ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
    
     menuWindow.setFocusable(true);
    
     menuWindow.setBackgroundDrawable(new BitmapDrawable());
    
     // 动画效果 从底部弹起
    
     menuWindow.showAtLocation(view, Gravity.BOTTOM, 0, 0);
    
     // 从指定View下显示
    
 //    menuWindow.showAsDropDown(view);
    
  
    
     menuWindow.setOnDismissListener(new PopupWindow.OnDismissListener() {
    
         @Override
    
         public void onDismiss() {
    
             menuWindow = null;
    
         }
    
     });
    
     }
    
     public void showPopwindowDowm(View v ,View view) {
    
     menuWindow = new PopupWindow(view, ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
    
     menuWindow.setFocusable(true);
    
     menuWindow.setBackgroundDrawable(new BitmapDrawable());
    
     // 动画效果 从中间
    
       menuWindow.showAtLocation(view, Gravity.CENTER, 0, 0);
    
     // 从指定View下显示
    
 //        menuWindow.showAsDropDown(v);
    
     menuWindow.setOnDismissListener(new PopupWindow.OnDismissListener() {
    
         @Override
    
         public void onDismiss() {
    
             menuWindow = null;
    
         }
    
     });
    
     }
    
     /** * 选择器加网络请求
    
      * @return
    
      */
    
     private String ValuesR = null;
    
     public View getStringRequestListPick(final View showView ,String currentTime) {
    
     View view = inflater.inflate(R.layout.activity_calender, null);
    
       calendarView = (CalendarView) view.findViewById(R.id.calendarview);
    
       calendarView.setDate(currentTime);
    
       calendarView.setOnDateSelectedListener(new CalendarView.OnDateSelectedListener() {
    
         @Override
    
         public void onDateSelected(int year, int month, int day) {
    
             Toast.makeText(context, year+"=" + month + "=" + day, Toast.LENGTH_SHORT).show();
    
             setRequst(showView , year+"-" + month + "-" + day);
    
             dismissPopwindow();
    
         }
    
     });
    
     return view;
    
     }
    
     public void dismissPopwindow(){
    
     if (menuWindow != null && menuWindow.isShowing()) {
    
         menuWindow.dismiss();
    
     }
    
     }
    
     /** * 显示选择数据
    
      * */
    
     private void setRequst(View view, String requst){
    
     if (view instanceof TextView) {
    
         ((TextView)view).setText(requst);
    
     } else if (view instanceof EditText) {
    
         ((EditText)view).setText(requst);
    
     } else if (view instanceof Button) {
    
         ((Button)view).setText(requst);
    
     }
    
     }
    
  
    
 }
    
    
    
    

在Acticity中使用

复制代码
 btn_send.setOnClickListener(new View.OnClickListener() {

    
     @Override
    
     public void onClick(View view) {
    
     PopupWindow = new menPopupWindow(context);
    
     PopupWindow.showPopwindowDowm(btn_send, PopupWindow.getStringRequestListPick(tv_content, cirrentTime));
    
     }
    
 });
    
    
    
    

2.使用Whell实现年月日 、时间、单个滚轮选择器(DateLianDongActivity)主要引用类在widget目录下:

3.获取系统时间、截取时间、星期几(GetDateTimesActivity)

4.自定义年月日的选择(CustomDateActivity)主要引用的类在dateYears目录下

5.自定义日历,对当前日期进行标记且只能选择未来的日期(当然可以根据需要自定义),点击上月或下月的日期可以跳转当对应的月份。也可以自己添加按钮来选择上一月或者下一月(代码有已注销)。(CustomRiLiActivity)

7.自定义时间选择器,显示的时间不能到过系统当前时间并且实现月份与日联动(CoustEndDateActivity)

主要实现在java下的checkdate目录下 :


大家需要可以进入下面链接下载源码:<>

全部评论 (0)

还没有任何评论哟~