欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Android 日歷控件庫,可左右滑動,顯示公歷,農歷,節(jié)假日等功能

 更新時間:2022年06月30日 14:26:12   作者:yalinfendou  
這篇文章主要介紹了Android 日歷控件庫,可左右滑動,顯示公歷,農歷,節(jié)假日等功能的相關資料,需要的朋友可以參考下

封面圖: 

demo效果圖

 

源碼目錄結構        

Features

  1. 日歷左右滑動.
  2. 顯示陽歷,農歷,節(jié)假日和二十四節(jié)氣
  3. 實現(xiàn)對某月日期的單選或者多選.

使用步驟

Gradle Dependency

Add the library to your project build.gradle

  compile 'com.joybar.calendar:librarycalendar:1.0.4'

Sample Usage

實現(xiàn)OnPageChangeListener和OnDateClickListener接口,如果實現(xiàn)多選,需要實現(xiàn) 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();

 }

 

}

單選或者多選的實現(xiàn)代碼

 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日歷控件的資料整理,后續(xù)繼續(xù)補充相關資料,謝謝大家對本站的支持!

相關文章

  • Android UI設計系列之自定義EditText實現(xiàn)帶清除功能的輸入框(3)

    Android UI設計系列之自定義EditText實現(xiàn)帶清除功能的輸入框(3)

    這篇文章主要介紹了Android UI設計系列之自定義EditText實現(xiàn)帶清除功能的輸入框,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-06-06
  • Android DragVideo實現(xiàn)播放視頻時任意拖拽的方法

    Android DragVideo實現(xiàn)播放視頻時任意拖拽的方法

    這篇文章主要介紹了Android DragVideo實現(xiàn)播放視頻時任意拖拽的方法的相關資料,一種在播放視頻時,能夠拖拽的方案,需要的朋友可以參考下
    2016-12-12
  • Android編程中調用Camera時預覽畫面有旋轉問題的解決方法

    Android編程中調用Camera時預覽畫面有旋轉問題的解決方法

    這篇文章主要介紹了Android編程中調用Camera時預覽畫面有旋轉問題的解決方法,涉及Android針對Camera調用攝像頭源碼部分的相關修改技巧,需要的朋友可以參考下
    2015-11-11
  • Android 后臺調度任務與省電詳解

    Android 后臺調度任務與省電詳解

    本文主要介紹 Android 后臺調度任務與省電,這里整理了詳細的知識資料供大家學習參考,希望能幫助有需要的小伙伴
    2016-08-08
  • Android中獲取sha1證書指紋數(shù)據(jù)的方法

    Android中獲取sha1證書指紋數(shù)據(jù)的方法

    大家都知道在Android開發(fā)中,經(jīng)常要獲取sha1證書指紋,所以這篇文章主要介紹在Android中如何使用命令獲取sha1證書指紋數(shù)據(jù)的方法,有需要的可以參考借鑒。
    2016-09-09
  • 使用Jetpack Compose實現(xiàn)翻轉卡片效果流程詳解

    使用Jetpack Compose實現(xiàn)翻轉卡片效果流程詳解

    Jetpack Compose 是一款基于 Kotlin 的聲明式 UI 工具包,可以方便地創(chuàng)建漂亮的用戶界面。使用 Compose 的動畫 API 和可繪制 API,可以輕松實現(xiàn)翻轉卡片效果。通過設置旋轉角度和透明度等屬性,可以使卡片沿著 Y 軸翻轉,并實現(xiàn)翻頁效果
    2023-05-05
  • Android自定義帶增長動畫和點擊彈窗提示效果的柱狀圖DEMO

    Android自定義帶增長動畫和點擊彈窗提示效果的柱狀圖DEMO

    這篇文章主要介紹了Android自定義帶增長動畫和點擊彈窗提示效果的柱狀圖的相關資料,非常不錯具有一定的參考借鑒價值,需要的朋友可以參考下
    2016-11-11
  • Flutter路由的跳轉、動畫和傳參詳解(最簡單)

    Flutter路由的跳轉、動畫和傳參詳解(最簡單)

    這篇文章主要給大家介紹了關于Flutter路由的跳轉、動畫和傳參的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-01-01
  • 詳解Android中接口回調、方法回調

    詳解Android中接口回調、方法回調

    在Android開發(fā)中我們很多地方都用到了方法的回調,回調就是把方法的定義和功能導入實現(xiàn)分開的一種機制,目的是為了解耦他的本質是基于觀察者設計模式,即觀察者設計模式的的簡化版。本文主要對Android中接口回調、方法回調進行詳細介紹,下面跟著小編一起來看下吧
    2017-01-01
  • 基于Rxjava實現(xiàn)輪詢定時器

    基于Rxjava實現(xiàn)輪詢定時器

    這篇文章主要為大家詳細介紹了基于Rxjava實現(xiàn)輪詢定時器,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-06-06

最新評論