时间:2021-05-21
封面图:
demo效果图
源码目录结构
Features
使用步骤
Gradle Dependency
Add the library to your project build.gradle
compile 'com.joybar.calendar:librarycalendar:1.0.4'
Sample Usage
实现OnPageChangeListener和OnDateClickListener接口,如果实现多选,需要实现 OnDateCancelListener
public class MainActivity extends AppCompatActivity implements CalendarViewPagerFragment.OnPageChangeListener, CalendarViewFragment.OnDateClickListener, CalendarViewFragment.OnDateCancelListener { private TextView tv_date; private boolean isChoiceModelSingle = false; private List<CalendarDate> mListDate = new ArrayList<>(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); tv_date = (TextView) findViewById(R.id.tv_date); initFragment(); } private void initFragment(){ FragmentManager fm = getSupportFragmentManager(); FragmentTransaction tx = fm.beginTransaction(); // Fragment fragment = new CalendarViewPagerFragment(); Fragment fragment = CalendarViewPagerFragment.newInstance(isChoiceModelSingle); tx.replace(R.id.fl_content, fragment); tx.commit(); } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.menu_im, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case R.id.menu_single: isChoiceModelSingle = true; initFragment(); break; case R.id.menu_multi: isChoiceModelSingle = false; initFragment(); break; default: break; } return true; } @Override public void OnDateClick(CalendarDate calendarDate) { int year = calendarDate.getSolar().solarYear; int month = calendarDate.getSolar().solarMonth; int day = calendarDate.getSolar().solarDay; if (isChoiceModelSingle) { tv_date.setText(year + "-" + month + "-" + day); } else { //System.out.println(calendarDate.getSolar().solarDay); mListDate.add(calendarDate); tv_date.setText(listToString(mListDate)); } } @Override public void OnDateCancel(CalendarDate calendarDate) { int count = mListDate.size(); for (int i = 0; i < count; i++) { CalendarDate date = mListDate.get(i); if (date.getSolar().solarDay == calendarDate.getSolar().solarDay) { mListDate.remove(i); break; } } tv_date.setText(listToString(mListDate)); } @Override public void OnPageChange(int year, int month) { tv_date.setText(year + "-" + month); mListDate.clear(); } private static String listToString(List<CalendarDate> list) { StringBuffer stringBuffer = new StringBuffer(); for (CalendarDate date : list) { stringBuffer.append(date.getSolar().solarYear + "-" + date.getSolar().solarMonth + "-" + date.getSolar().solarDay).append(" "); } return stringBuffer.toString(); } }单选或者多选的实现代码
if (isChoiceModelSingle) { mGridView.setChoiceMode(GridView.CHOICE_MODE_SINGLE); } else { mGridView.setChoiceMode(GridView.CHOICE_MODE_MULTIPLE); } mGridView.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { CalendarDate calendarDate = ((CalendarGridViewAdapter) mGridView.getAdapter()).getListData().get(position); if (isChoiceModelSingle) { //单选 if (finalMListDataCalendar.get(position).isInThisMonth()) { onDateClickListener.OnDateClick(calendarDate); } else { mGridView.setItemChecked(position, false); } } else { //多选 if (finalMListDataCalendar.get(position).isInThisMonth()) { // mGridView.getCheckedItemIds() if(!mGridView.isItemChecked(position)){ onDateCancelListener.OnDateCancel(calendarDate); } else { onDateClickListener.OnDateClick(calendarDate); } } else { mGridView.setItemChecked(position, false); } } } });git地址:https://github.com/myjoybar/android-calendar-view
以上就是Android 日历控件的资料整理,后续继续补充相关资料,谢谢大家对本站的支持!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
农历是中国长期采用的一种传统历法,也是最早使用的历法,是非常重要的,所以在Windows8Metro日历中显示农历和节假日是很有必要的,下面Win8迷教你如
是因为没有开启显示中国节假日选项。以iPhone7手机为例,开启日历显示中国节假日的方法如下: 1、首先打开iPhone7手机,然后在iPhone7手机的桌面
对于办公一族,Office中的Outlook逐渐成了日常工作交流的必备品,但是对于单调的日历功能,你是否很无奈,下面分享下为Outlook日历添加节假日的小技巧
本文大纲:淘宝客服法定节假日放假吗?假期客服怎么找现如今提起有很多人都会选择节假日买东西,所以,如果遇到了节假日有事情想要咨询淘宝联盟服,那淘宝客服法定节假日放
自电商开始兴起以来,每个节假日都是电商必备的主题促销手段。没有节假日我们也生产出节假日来过,例如每年淘宝的光棍节,京东的618,都是大型的促销活动日,是消费