android 仿预订日历时间选择(如去哪儿,携程
看标题就知道了,日历一个日历选择,码安码类似于去哪儿,卓日携程,历源酒店预订功能
调用方法
package com.fly.caldroid;import android.annotation.SuppressLint;import android.app.Activity;import android.content.Intent;import android.content.res.Configuration;import android.os.Bundle;import android.view.View;import com.wz.caldroid.CalendarCellDecorator;import com.wz.caldroid.CalendarPickerView;import java.util.ArrayList;import java.util.Calendar;import java.util.Collections;import java.util.Date;@SuppressLint("SimpleDateFormat")public class CaldroidActivity extends Activity { private CalendarPickerView calendar; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.calendar_activity); Bundle myBundle = getIntent().getExtras(); long seleteTime = myBundle.getLong("selete_time"); final Calendar nextYear = Calendar.getInstance(); nextYear.add(Calendar.MONTH,日历 3); final Calendar lastYear = Calendar.getInstance(); lastYear.add(Calendar.MONTH, 0); calendar = (CalendarPickerView) findViewById(R.id.calendar_view); Calendar today = Calendar.getInstance(); ArrayList<Date> dates = new ArrayList<Date>(); if (seleteTime>0){
Date d1=new Date(seleteTime); dates.add(d1); }else{
dates.add(today.getTime()); } calendar.setDecorators(Collections.<CalendarCellDecorator>emptyList()); calendar.init(lastYear.getTime(), nextYear.getTime()) // .inMode(CalendarPickerView.SelectionMode.MULTIPLE) // .withSelectedDate(dates.get(0)); initButtonListeners(); } private void initButtonListeners() { calendar.setOnDateSelectedListener(new CalendarPickerView.OnDateSelectedListener() { @Override public void onDateSelected(Date date) {
Intent intent = new Intent(); intent.putExtra("SELETE_DATA_TIME", calendar.getSelectedDate().getTime()); setResult(2, intent); finish(); } @Override public void onDateUnselected(Date date) {
}
}); View titlebar_img_back=findViewById(R.id.titlebar_img_back); titlebar_img_back.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) {
finish(); }
}); } @Override public void onConfigurationChanged(Configuration newConfig) { super.onConfigurationChanged(newConfig); }
}
layout======
calendar_activity
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent" > <RelativeLayout android:id="@+id/title_content_layout" android:layout_width="match_parent" android:layout_height=".5dp" android:background="@color/big_red"> <TextView android:id="@+id/titlebar_text_title" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerInParent="true" android:layout_marginLeft="dp" android:layout_toRightOf="@+id/titlebar_img_back" android:maxEms="8" android:singleLine="true" android:text="选择日历" android:textColor="@color/white" android:textSize="sp" android:visibility="visible" /> <ImageView android:id="@+id/titlebar_img_back" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerVertical="true" android:padding="5dp" android:src="@drawable/back_ic" android:visibility="visible" /> </RelativeLayout> <com.wz.caldroid.CalendarPickerView android:id="@+id/calendar_view" android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1" android:paddingLeft="dp" android:paddingRight="dp" android:paddingBottom="dp" android:scrollbarStyle="outsideOverlay" android:clipToPadding="false" android:background="#FFFFFF" /></LinearLayout>
在textview上显示时间
package com.fly.caldroid;import android.content.Intent;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.view.View;import android.widget.TextView;import java.text.SimpleDateFormat;import java.util.Date;public class MainActivity extends AppCompatActivity { private long seleteTime = 0; private TextView time_choice_view; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); time_choice_view = (TextView) findViewById(R.id.time_choice_view); time_choice_view.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) {
Intent intent = new Intent(); Bundle bundle = new Bundle(); bundle.putLong("selete_time", seleteTime); intent.putExtras(bundle); intent.setClass(MainActivity.this, CaldroidActivity.class); startActivityForResult(intent, 5); }
}); } @Override public void onActivityResult(int requestCode, int resultCode, Intent data) { if (requestCode == 5) { if (resultCode == 2) { seleteTime = data.getLongExtra("SELETE_DATA_TIME", 0); SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); Date d1 = new Date(seleteTime); String t1 = format.format(d1); if (seleteTime > 0) { time_choice_view.setText(t1); } else { return; }
}
} super.onActivityResult(requestCode, resultCode, data); }
}
CalenderView是Android上一个优雅、高度自定义、码安码性能高效的卓日任务商城网站源码日历控件
CalenderView是一款在Android平台上性能高效、高度自定义的历源优雅日历控件。它完美支持周视图,日历具备标记、码安码自定义颜色、卓日农历等功能。怎么扒别人源码用户可任意控制月视图显示,设定任意日期拦截条件及自定义周起始。该控件利用Canvas绘制技术,确保极速性能与低内存占用。它支持简单定制以实现任意自定义布局和UI,龙潮源码网具备收缩展开功能,性能极为高效。内存和效率优势显著,支持多种颜色标记日历事务,兼容多点触控,应急广播平台源码日历界面优雅且功能丰富。详细用法与示例请参阅Demo,其中包含了4个精美的自定义效果展示。
android日历控件
1.DatePicker
在Android中,DatePicker用来实现日期输入设置,日期的设置范围为年1月1日至年月日。
1.1常用xml属性
DatePicker的常用xml属性如图1所示:
图1 DatePicker常用xml属性
其中,android:calendarViewShown[boolean]用于设置是否显示calendar view;android:endYear[int]用于设置截至日期;android:maxDate[int]用于设置最大的日期;android:minDate[int]用于设置最小的日期;android:spinnersShown[boolean]用于设置是否显示spinners;android:startYear[int]用于设置起始日期。
1.2常用方法
DatePicker的常用方法有以下一些:
(1)public CalendarView getCalendarView(); //获取CalendarView
(2)public boolean getCalendarViewShown(); //获取CalendarView是否显示
(3)public int getDayOfMonth(); //获取当前日期的日
(4)public long getMaxDate(); //获取最大日期
(5)public long getMinDate(); //获取最小日期
(6)public int getMonth(); //获取当前日期的月
(7)public boolean getSpinnersShown(); //获取Spinners是否显示
(8)public int getYear(); //获取当前日期的年
(9)public void init(int year,int monthOfYear,int dayOfMonth,
DatePicker.OnDateChangedListener onDateChangedListener); //初始化日期
()public void setCalendarViewShown(boolean shown); //设置是否显示CalendarView
()public void setMaxDate(long maxDate); //设置最大日期
()public void setMinDate(long minDate); //设置最小日期
()public void setSpinnersShown(boolean shown); //设置是否显示Spinners
()public void updateDate(int year,int month,int dayOfMonth); //更新当前日期
2.TimePicker
在Android中,TimePicker用来实现时间输入设置,可以选择或小时模式。TimePicker的常用方法有以下一些:
(1)public Integer getCurrentHour(); //获取当前时间的小时
(2)public Integer getCurrentMinute(); //获取当前时间的分钟
(3)public boolean isHourView(); //获取是否为小时模式
(4)public void setCurrentHour(Integer currentHour); //设置当前时间的小时
(5)public void setCurrentMinute(Integer currentMinute); //设置当前时间的分钟
(6)public void setIsHourView(Boolean isHourView); //设置小时模式
3.DatePickerDialog
在Android中,DatePickerDialog用来显示日期对话框。DatePickerDialog的常用方法有以下一些:
(1)public DatePicker getDatePicker(); //获取DatePicker中的日期值
(2)public void onClick(DialogInterface dialog,int which); //响应对话框中的点击事件
(3)public void onDateChanged(DatePicker view,int year,int month,int day); //响应日期改变事件
(4)public void updateDate(int year,int monthOfYear,int dayOfMonth); //更新当前日期
4.TimePickerDialog
在Android中,TimePickerDialog用来显示时间对话框。TimePickerDialog的常用方法有以下一些:
(1)public void onClick(DialogInterface dialog,int which); //响应对话框中的点击事件
(2)public void onTimeChanged(TimePicker view,int hourOfDay,int minute); //响应时间改变事件
(3)public void updateTime(int hourOfDay,int minuteOfHour); //更新当前时间
5.AnalogClock
在Android中,AnalogClock用于显示指针式时钟,该时钟仅有时钟和分钟两个指针。
6.DigitalClock
在Android中,DigitalClock用来显示数字式时钟,显示格式为HH:MM:SS AM/PM。
2024-12-23 23:35
2024-12-23 23:26
2024-12-23 23:19
2024-12-23 23:17
2024-12-23 22:25